WSTĘP DO PROGRAMOWANIA



Podobne dokumenty
WSTĘP DO PROGRAMOWANIA

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

Podstawy programowania

Bazy danych. Andrzej Łachwa, UJ, /15

Wniosek o ustalenie warunków zabudowy

Edycja geometrii w Solid Edge ST

Automatyczne przetwarzanie recenzji konsumenckich dla oceny użyteczności produktów i usług

JADWIGA SKIMINA PUBLIKACJA NA TEMAT: NAUKA MS. WORD 2000 W KLASIE IV

Komentarz Sesja letnia 2012 zawód: technik eksploatacji portów i terminali 342[03] 1. Treść zadania egzaminacyjnego wraz z załączoną dokumentacją

Warunki Oferty PrOmOcyjnej usługi z ulgą

Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Wtedy wystarczy wybrać właściwego Taga z listy.

Projektowanie bazy danych

REGULAMIN ZESPOŁU INTERDYSCYPLINARNEGO W KROTOSZYNIE

Niezależnie od rodzaju materiału dźwiękowego ocenie podlegały następujące elementy pracy egzaminacyjnej:

Stacjonarne Wszystkie Katedra Informatyki Stosowanej dr inż. Krzysztof Strzałkowski. Kierunkowy Nieobowiązkowy Polski Semestr piaty

Podstawy Informatyki Gramatyki formalne

INFORMATYKA dla gimnazjum Opis założonych osiągnięć ucznia klasy trzeciej

Systemy mikroprocesorowe - projekt

EGZAMIN MATURALNY Z INFORMATYKI CZERWIEC 2011 POZIOM ROZSZERZONY WYBRANE: CZĘŚĆ I. Czas pracy: 90 minut. Liczba punktów do uzyskania: 20

Wyzwania bezpieczeństwa nowoczesnych platform nauczania zdalnego

Co zrobić, jeśli uważasz, że decyzja w sprawie zasiłku mieszkaniowego lub zasiłku na podatek lokalny jest niewłaściwa

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

Przygotowały: Magdalena Golińska Ewa Karaś

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

Procedura działania Punktu Potwierdzającego Profile Zaufane epuap w Urzędzie Miejskim w Gdańsku

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?

INSTRUKCJA DLA UCZESTNIKÓW ZAWODÓW ZADANIA

KRYTERIA OCENIANIA WYPOWIEDZI PISEMNYCH KRÓTKA I DŁUŻSZA FORMA UŻYTKOWA

2.Prawo zachowania masy

Statystyczna analiza danych w programie STATISTICA. Dariusz Gozdowski. Katedra Doświadczalnictwa i Bioinformatyki Wydział Rolnictwa i Biologii SGGW

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

REGULAMIN. przeprowadzania naboru nowych pracowników do korpusu służby cywilnej w Kuratorium Oświaty w Szczecinie.

TAJEMNICA BANKOWA I OCHRONA DANYCH OSOBOWYCH W PRAKTYCE BANKOWEJ

Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych

Sieci komputerowe cel

Informacje o omawianym programie. Założenia programu omawianego w przykładzie

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Kancelaris - Zmiany w wersji 2.50

Gdynia: Księgowość od podstaw Numer ogłoszenia: ; data zamieszczenia: OGŁOSZENIE O ZAMÓWIENIU - usługi

KLAUZULE ARBITRAŻOWE

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Zarząd Dróg Wojewódzkich. Wytyczne Techniczne. Zbigniew Tabor Kraków,

WYMAGANIA EDUKACYJNE SPOSOBY SPRAWDZANIA POSTĘPÓW UCZNIÓW WARUNKI I TRYB UZYSKANIA WYŻSZEJ NIŻ PRZEWIDYWANA OCENY ŚRÓDROCZNEJ I ROCZNEJ

WYMAGANIA EDUKACYJNE Z PRZEDMIOTÓW ZAWODOWYCH ODBYWAJĄCYCH SIĘ W SZKOLNYM LABORATORIUM CHEMICZNYM

Wiedza niepewna i wnioskowanie (c.d.)

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

PRZEWODNIK PO PRZEDMIOCIE

Procedura nadawania uprawnień do potwierdzania Profili Zaufanych w Urzędzie Gminy w Ryjewie

Regulamin Zarządu Pogórzańskiego Stowarzyszenia Rozwoju

Konspekt lekcji otwartej

TEMAT EWALUACJI WEWNĘTRZNEJ : Jak motywować uczniów do świadomego uczęszczania do szkoły.

Uchwała z dnia 20 października 2011 r., III CZP 53/11

Ujednolicenie zasad udzielania zwolnień z zajęć szkolnych w szkołach podstawowych i gimnazjach w Gminie Bergen (Bergensstandarden).

- 70% wg starych zasad i 30% wg nowych zasad dla osób, które. - 55% wg starych zasad i 45% wg nowych zasad dla osób, które

PERSON Kraków

Podstawowe działania w rachunku macierzowym

Numer obszaru: 13. Jak pracować z uczniem uzdolnionym informatycznie? Od grafiki i multimediów do poważnych algorytmów w środowisku Logomocja-Imagine

INSTRUKCJA OBSŁUGI WD2250A. WATOMIERZ 0.3W-2250W firmy MCP

InsERT GT Własne COM 1.0

Komentarz do prac egzaminacyjnych w zawodzie technik administracji 343[01] ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJĄCEGO KWALIFIKACJE ZAWODOWE

Uchwała nr 21 /2015 Walnego Zebrania Członków z dnia w sprawie przyjęcia Regulaminu Pracy Zarządu.

Na podstawie art.4 ust.1 i art.20 lit. l) Statutu Walne Zebranie Stowarzyszenia uchwala niniejszy Regulamin Zarządu.

Projekt. Projekt opracował Inż. Roman Polski

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

ZASADY PROWADZENIA CERTYFIKACJI FUNDUSZY EUROPEJSKICH I PRACOWNIKÓW PUNKTÓW INFORMACYJNYCH

Programowanie Zespołowe

Warszawska Giełda Towarowa S.A.

Studia podyplomowe Legislacja administracyjna

NACZYNIE WZBIORCZE INSTRUKCJA OBSŁUGI INSTRUKCJA INSTALOWANIA

Aktualizacja CSP do wersji v7.2. Sierpień 2014

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

tel/fax lub NIP Regon

14.Rozwiązywanie zadań tekstowych wykorzystujących równania i nierówności kwadratowe.

Harmonogramowanie projektów Zarządzanie czasem

Elastyczne systemy wytwarzania

Ogólna charakterystyka kontraktów terminowych

KONCEPCJA NAUCZANIA PRZEDMIOTU RACHUNKOWOŚĆ SKOMPUTERYZOWANA" NA WYDZIALE ZARZĄDZANIA UNIWERSYTETU GDAŃSKIEGO

OFERTA WYKŁADÓW, WARSZTATÓW I LABORATORIÓW DLA UCZNIÓW KLAS IV- VI SZKÓŁ PODSTAWOWYCH, GIMNAZJALNYCH I ŚREDNICH

Zestawienie wartości dostępnej mocy przyłączeniowej źródeł w sieci RWE Stoen Operator o napięciu znamionowym powyżej 1 kv

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

Regulamin rekrutacji i udziału w projekcie

Zarządzanie projektami. wykład 1 dr inż. Agata Klaus-Rosińska

Szóstoklasisto! 1. Z urzędu do gimnazjum przyjmowani są absolwenci szkół podstawowych zamieszkali w obwodzie danego gimnazjum.

Instrukcja zarządzania systemem informatycznym służącym do przetwarzania danych osobowych

INSTRUKCJA DLA INSPEKTORÓW DS. REJESTRACJI

DFD Diagram przepływu danych (Data Flow Diagram) dr Tomasz Ordysiński

INSTRUKCJA RUCHU I EKSPLOATACJI SIECI DYSTRYBUCYJNEJ

NOWELIZACJA USTAWY PRAWO O STOWARZYSZENIACH

Witajcie. Trening metapoznawczy dla osób z depresją (D-MCT) 09/15 Jelinek, Hauschildt, Moritz & Kowalski; ljelinek@uke.de

Evidence Based Scheduling

ANALOGOWE UKŁADY SCALONE

enova Workflow Obieg faktury kosztowej

1. Rozwiązać układ równań { x 2 = 2y 1

DZIENNICZEK PRAKTYKI ZAWODOWEJ

Transkrypt:

Stefan Sokołowski WSTĘP DO PROGRAOWANIA Inst Informatyki UG, Gdańsk, 2011/2012 Wykład1ALGORYTAPROGRA,str1 WSTĘP DO PROGRAOWANIA reguły gry Zasadnicze informacje: http://infugedupl/ stefan/dydaktyka/wstepdoprog szkicowy program wykładu, laboratorium i ćwiczeń spis literatury slajdydowykładów wartorobićnotatki ale nie warto przepisywać slajdów z ekranu zadaniazćwiczeńizlaboratoriumwmoichgrupach itd

WSTĘP DO PROGRAOWANIA reguły gry Kontakt ze mną: konsultacje: środy 10:15 11:00 w pok 57 e-mail: ssokolowski@infugedupl Zaliczenia: zaliczenie laboratorium, antyspam: unikać frikoprowajderów, np: o2pl wppl gazetapl najlepiej używać konta mailowego w II UG zaliczenie ćwiczeń audytoryjnych, znajdowanie błędów w wykładzie Algorytm a program Wykład1ALGORYTAPROGRA,str3 Przykład: algorytmu(jak dojść) Pójdzie pan prosto do świateł; skręci pan w prawo; dojdzie pan do zielonego płotu; przejdzie pan na drugą stronę ulicy;

Algorytm a program Przykład: algorytmu(stary przepis kucharski) weź kop,e jaj; m,aki ile zabior,a; do-luskania orzechów zasadź trzy dziewki na pó-l dnia a bacz, iżby nie jad-ly; Algorytm a program Wykład1ALGORYTAPROGRA,str5 Przykład: algorytmu(potęgowanie przez wielokrotne mnożenie) 3 4 = = 1 3 4 = 3 3 3 = 9 3 2 =27 3 1 =81 3 0 =81 0 narazieprzyjmij,żewynik=1 iżew=wykładnik; 1 jeśliw=0,tozakończobliczenie; 2 jeśliw>0,to domnóż wynik przez podstawę; zmniejszwo1; idźponowniedo1;

Algorytm a program Algorytm: spis kolejnych czynności potrzebnych do rozwiązania zadania Program: prezentacja(zapis) algorytmu w sposób ustalony konwencją(np w języku, rysunku, itp) algorytm twierdzenie program tekst twierdzenia Tekst poprawnego twierdzenia może być błędny(np z pomyłką drukarską) Czytelnik-człowiek na ogół ma dosyć intuicji, żeby się nie nabrać na ten błąd Program realizujący poprawny algorytm może być niepoprawny(np z powodu literówki zrobionej przy pisaniu na klawiaturze) Czytelnik-komputer na ogół nie potrafi poprawić błędu W pewnych przypadkach jest w stanie wykryć, że coś jest niedobrze i wskazać przybliżone miejsce błędu w programie Algorytm a program Wykład1ALGORYTAPROGRA,str7 Algorytm rozwiązujący jakieś zadanie jest poprawny lub niepoprawny dla tego zadania niezależnie od konkretnego sposobu zapisu(języka) czy komputera Z istnienia programu realizującego dany algorytm w jakimś języku programowania wynika na ogół istnienie programów realizujących ten algorytm w innych językach programowania algorytmy nie zależą od języków Dlatego możemy rozważać osobno algorytm rozwiązujący zadanie(bez związku z konkretnym językiem czy komputerem), program prezentujący algorytm(w konkretnym języku) Programowanie: kompromis między tym, co jest potrzebne, atym,codasięzrobić

Ten sam algorytm w różnych językach Przykład: (potęgowanie przez wielokrotne mnożenie) Opis słowny: 0 narazieprzyjmij,żewynik=1 iżew=wykładnik; 1 jeśliw=0,tozakończobliczenie; 2 jeśliw>0,to domnóż wynik przez podstawę; (pętla) zmniejszwo1; idźponowniedo1; (inicjalizacja) Wykład1ALGORYTAPROGRA,str9 Ten sam algorytm w różnych językach Przykład:(potęgowanie przez wielokrotne mnożenie schemat blokowy) wynik 1;w wykładnik w>0 w=0 wynik wynik podstawa w w 1

Ten sam algorytm w różnych językach Przykład:(potęgowanie przez wielokrotne mnożenie program w Pascalu iwc) inicjalizacja pętli warunek pętli Pascal: C: wynik:=1; w:= wykladnik; whilew>0dobegin wynik:= wynik*podstawa; w:=w-1; end wynik=1; w=wykladnik; while(w>0) { wynik = wynik*podstawa; w=w-1; } ciało pętli Wykład 1 ALGORYT A PROGRA, str 11 Ten sam algorytm w różnych językach Przykład:(potęgowanie przez wielokrotne mnożenie program w Pascalu ic) inicjalizacja pętli warunek pętli Pascal: C: wynik:=1; wynik=1; w:= wykladnik; w=wykladnik; while(w>0) { whilew>0dobegin wynik:= wynik*podstawa; w:=w-1; end } wynik = wynik*podstawa; w=w-1; ciało pętli

Symulacja działania programu Przykład:(potęgowanie przez wielokrotne mnożenie schemat blokowy) podstawawykładnikwynikww>0 0 wynik 1;w wykładnik 1 w>0 w=0 2 wynik wynik podstawa 3 w w 1 4 0 3 4 1 3 4 1 4 tak 2 3 4 1 4 3 3 4 3 4 1 3 4 3 3 tak 2 3 4 3 3 3 3 4 9 3 1 3 4 9 2 tak 2 3 4 9 2 3 3 4 27 2 1 3 4 27 1 tak Wykład 1 ALGORYT A PROGRA, str 13 Symulacja działania programu cd Przykład:(potęgowanie przez wielokrotne mnożenie schemat blokowy) podstawawykładnikwynikww>0 0 wynik 1;w wykładnik 1 w>0 w=0 2 wynik wynik podstawa 3 w w 1 4 1 3 4 27 1 tak 2 3 4 27 1 3 3 4 81 1 1 3 4 81 0 nie 4 3 4 81 0

Symulacja działania programu Symulacja polega na ręcznym wykonaniu komend programu, wodząc palcem po jego tekście W trakcie tworzenia programu programista nie powinien symulować jego obliczeń, bo nie jest komputerem Programista powinien patrzeć na program z szerszej perspektywy niż pojedyncze komendy Natomiast w razie wystąpienia błędu, ręczne wykonanie fragmentu programu i porównanie z wykonaniem komputera może pomóc w znalezieniu przyczyny błędu Dlatego programista musi umieć przeprowadzić symulację obliczenia Prawie każdy program ma poprawnie działać na wielu różnych danych; zwykle tych możliwych danych jest nieskończenie wiele Nie ma więc możliwości przesymulowania go, ani uruchomienia na komputerze(przetestowania) na wszystkich danych Testowanie może wskazać błąd Ale nie może wykazać poprawności(braku błędu) Wykład 1 ALGORYT A PROGRA, str 15 Imperatywny charakter algorytmów i programów Schematy blokowe i programy w większości języków programowania rozkazują wykonawcy(komputerowi), co ma robić i w jakiej kolejności Komputer nie kwestionuje poleceń(o ile nie zawierają one błędów formalnych) Jeśli ciąg poleceń(program) jest źle przemyślany, to komputer w dobrej wierze wyliczy złe wartości Pełna odpowiedzialność za skutki wykonania programu spoczywa na programiście Istnieją języki programowania o innym(nieimperatywnym) charakterze: języki wyspecjalizowane do wąskich celów(np SQL do obsługi baz danych, lub HTL do tworzenia witryn internetowych); języki programowania ogólnego o bardziej matematycznym charakterze (np LISP, Standard L, Prolog)

Elementy programu imperatywnego(np w C) komenda = instrukcja = polecenie = fragment programu Przypisanie: nadaj zmiennej wartość; np wynik=1; w=w-1; W C znak = nie oznacza równości tylko przypisanie; równość oznacza się przez ==; przypisanie zawsze kończy się średnikiem Następstwoinstrukcji:wykonajnajpierwtoapotemtamto;np wynik=1;w=wykladnik; Pętla: nadaj zmiennym wartości początkowe(inicjalizacja) wielokrotnie powtarzaj instrukcję(ciało) aż przestanie być spełniony warunek pętli Konstrukcja pętli Wykład 1 ALGORYT A PROGRA, str 17 Opis słowny: 0 inicjalizacja 1 Jeśli warunek jest niespełniony, to zakończ obliczenie 2 Jeśli warunek jest spełniony, to ciało idźdo1 Schemat blokowy: inicjalizacja warunek warunek ciało Pascal: inicjalizacja; while warunek do ciało C: inicjalizacja while(warunek) ciało

Budowa komputera 0 1 2 N 2 N 1 pamięć procesor Obliczenie p=x y z w;: pobierz x pomnóż przez y zapamiętaj w t pobierz z pomnóż przez w zapamiętaj w u pobierz t odejmij u zapamiętaj w p Adresowana pamięć składająca się z N komórek Procesor wykonujący działania między swoim rejestrem a komórką pamięci; nie można bezpośrednio wykonać np dodawania zawartości dwóch komórek Schemat przetwarzania Wykład 1 ALGORYT A PROGRA, str 19 Procesor jest aktywnym elementem komputera Pamięć służy mu jako bierny notes Procesor rozumie komendy tylko z bardzo prostego języka wewnętrznego Żeby mógł wykonać program, napisany przez programistę w języku wysokiego poziomu, takim jak Pascal lub C, program ten musi najpierw zostać przetłumaczony lub skompilowany na język wewnętrzny Programy są tłumaczone przez specjalny program, tzw translator lub kompilator Wczytuje on jako dane tekst programu w języku wysokiego poziomu i produkuje jako wynik program w języku wewnętrznym gotowy do działania Program w języku wewnętrznym(skompilowany) jest nieczytelny dla programisty Program w języku wysokiego poziomu jest niewykonalny dla komputera

Schemat przetwarzania x=10; while(x>0) programwc gcc kompilator C DANE pobierz zapisz program w jęz wewnętrznym WYNIKI