Prowadzący: Dr inż. Jerzy Szczygieł

download Prowadzący: Dr inż. Jerzy Szczygieł

If you can't read please download the document

description

Technologie Informacyjne. Tydzień 3. Prowadzący: Dr inż. Jerzy Szczygieł. Algorytm – w matematyce oraz informatyce to skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania. Słowo algorytm rozumiane jako przepis wykonania zadania - PowerPoint PPT Presentation

Transcript of Prowadzący: Dr inż. Jerzy Szczygieł

  • Prowadzcy: Dr in. Jerzy SzczygieTydzie 3

  • Algorytm - definicjaAlgorytm w matematyce oraz informatyce to skoczony, uporzdkowany cig jasno zdefiniowanych czynnoci, koniecznych do wykonania pewnego zadania.

    Sowo algorytm rozumiane jako przepiswykonania zadaniapochodzi od fragmentu nazwiska arabskiego matematyka yjcego na przeomie VIII i IX wieku (ok. 780 - ok. 850).Muhammad ibn Musa al-Chorezmi,ktry zosta uznany za prekursoraobliczeniowych metod wmatematyce.

  • Algorytmy - przykadyZaparzanie herbaty dane wejciowe : woda, herbata,cukier, szklanka, czajnik yeczka,palnik gazowy, zapaki

    wsyp herbat do szklanki;nalej wod do czajnika;zapal gaz;poczekaj a w czajniku zagotuje si woda;zalej herbat w szklance wrztkiem;poczekaj 2 minuty;dodaj cukier;pomieszaj;

    wynik :herbata gotowa do wypiciaZnajdowanie najwikszego wsplnego dzielnika NWD (*)

    dane wejciowe: liczby a i b dopki b 0 wykonuj:podstaw za c reszt z dzielenia a przez b; podstaw za a liczb b; podstaw za b liczb c;podstaw za NWD liczb b; wynik: NWD

    (*)tzw. Algorytm Euklidesa wymylony, cociekawe, przez Eduksosa z Knidos

  • Algorytmizacja zadaniaSformuowanie zadaniaOkrelenie danych wejciowychOkrelenie celu, czyli wyniku Poszukiwanie metody rozwizania, czyli algorytmu Przedstawienie algorytmu w postaci: - opisu sownego - listy krokw - schematu blokowego - jednego z jzykw programowania Analiza poprawnoci rozwizania Testowanie rozwizania dla rnych danych - ocena efektywnoci przyjtej metody

  • Cechy algorytmuCechy podstawoweposiada dane wejcioweprodukuje pewien wynikjest precyzyjnie zdefiniowanyjest skoczony

    Cechy dodatkowerealizowalnomoliwo zapisania w wielu postaciachmoliwo wielokrotnego wykonywaniamoliwo zapisania uywajc skoczonego zbioru symboli.

  • Porwnywanie i ocena efektywnoci algorytmwKryteria prostotaczytelnodugo kodupoprawnoczas realizacjizajto pamici

    Ocena efektywnoci i warto algorytmu :koszt czasowy algorytmu ilo operacji jakie musi wykona koszt pamiciowy - ile komrek pamici potrzebuje dany algorytmpoprawno algorytmu polega na tym, e nie ma w nim bdw skadniowych ani logicznych, a w zwizku z tym jest on skoczony (musi si zatrzyma) oraz daje poprawny wynik.Algorytm idealny posiada prosty, atwy do zrozumienia kod, liczy si szybko, nie wymaga duo miejsca w pamici i zawsze daje poprawne wyniki

  • Metoda krokowa opisu algorytmuAlgorytm Euklidesa znajdowania NWD, IV w. p.n.e

    dano dwie liczby a i bjeeli a=b to przejd do kroku 7jeeli a

  • Schemat blokowy - definicjaSchemat blokowy jedna z najpopularniejszych formprzedstawiania algorytmu. Tworzy si go za pomoc umownychsymboli z zaznaczeniem pocze i kierunkw przepywu informacji.Zasady budowy schematu blokowegokada operacja jest umieszczona w osobnym blokuschemat ma tylko jeden blok "start" i przynajmniej jedn blok stop poszczeglne bloki s ze sob poczone. z bloku wychodzi jedno poczenie; wyjtek stanowi: "stop" (z ktrego nie wychodz ju dne poczenia) oraz blok warunkowy (z ktrego wychodz dwa poczenia opisane TAK i NIE w bloku operacyjnym zamiast znaku "=" pojawia si oznaczenie ":="

  • Schemat blokowy rodzaje blokwBloki graniczne:Bloki wejcia-wyjcia:Blok wykonawczy:Blok warunkowy:

  • Sieci dziaaProste (sekwencyjne)nie uywa si w nich blokw warunkowych. Kolejno operacji jest cile okrelona i adna z nich nie moe by pominita ani powtrzona

    Z rozwidleniem (warunkowe)zawiera w sobie wybr jednej z kilku moliwych drg realizacji danego zadania. Istnieje w nich przynajmniej jeden blok warunkowy

    Z ptl (iteracyjne)stosowany wtedy gdy w trakcie realizacji danego zadania konieczne jest powtrzenie niektrych operacji rnicych si jedynie zestawem danych

    Zoonebdce kombinacj powyszych sieci

  • Podstawowe struktury programistyczne

    jeeli warunek logiczny Wyraenie bdzie prawdziwy rb Dziaanie P, inaczej nic nie rb

    jeeli warunek logiczny Wyraenie jest prawdziwy rb Dziaanie P , inaczej rb Dziaanie F

  • Podstawowe struktury programistyczne cd.

    oblicz Wyraenie oraz wykonaj t instrukcj, przejcie do ktrej odpowiada wartoci Wyraenia. Inaczej wykonaj instrukcj Domyln

    sprawd Wyraenie, jeeli jest prawdziwe, wykonaj instrukcj oraz wr do ponownego sprawdzania Wyraenia, inaczej wyjd z konstrukcji

  • Podstawowe struktury programistyczne cd.

    wykonaj instrukcj, a nastpnie sprawd Wyraenie, jeeli jest prawdziwe, wr do ponownego wykonania instrukcji, inaczej wyjd z konstrukcji

    przed rozpoczciem konstrukcji ustaw licznik. Dopki wyraenie jest prawdziwe, wykonaj Instrukcj, a nastpnie zmie licznik

  • Przykady algorytmw

  • Przykady algorytmw cd.

  • Przykady algorytmw cd.

  • Przykady algorytmw cd.

  • Przykady algorytmw cd.

  • Przykady algorytmw cd.

  • Zadania do samodzielnego rozwizaniaPrzy pomocy schematw blokowych opisa algorytmy realizujcenastpujce zadania:Ugotowanie jajka na:mikkotwardoManewr wyprzedzania samochodem powoli jadcego traktora. Uwzgldni zmieniajce si warunki na drodze (natenie ruchu, uksztatowanie powierzchni, widoczno)Znalezienie rodka cikoci prta stalowego. Prt znajduje si na ruchomych podporach (mona je zblia i oddala od siebie) Dano liczb A. Sprawdzi, czy dana liczba jest podzielna jednoczenie przez 3 i przez 7Dano liczb cakowit. Znale sum wszystkich cyfr w skadzie danej liczbyZnale cakowite pierwiastki rwnania: 3x3+7x2=550 w przedziale [010]

  • Zadania do samodzielnego rozwizania cd.Znale sum n pierwszych elementw szeregu:

    Dano proces predefiniowany Random(), ktry generuje jedn liczb losow w przedziale od 0 do 65375. Opisa algorytm wygenerowania 20 losowych liczb w przedziale [10;100]Obliczy warto funkcji sin(x) w przedziale [-2; 2] z krokiem 0,01Obliczy warto funkcji dla cakowitego x:

  • Programowanie - definicjaProgramowanie proces projektowania, tworzenia i poprawiania kodu rdowego programwkomputerowych lub urzdze mikroprocesorowych (mikrokontrolerw). Kod rdowy pisze si z uyciem regu okrelanych przez wybrany jzykprogramowania.algorytmjzyk programowaniaprogramsymbolesowa kluczoweskadniasemantyka

  • Skadnia i semantyka jzykw programowaniaSkadnia typowego jzyka zawiera:warianty kilku struktur sterujcychsposoby definiowania rozmaitych struktur danychwzorce podstawowych instrukcji

    Skadnia jzyka programowania okrelajak opisywa struktury sterujcejak opisywa struktury danychjak tworzy poprawne symbole dla nazwania zmiennych i struktur danychjak stosowa interpunkcje (np. spacje, przecinki, kropki nawiasy)

    Semantyka okrela znaczenie poprawnych skadniowo wyrae

  • Kompilacja i interpretacjaKompilacja przekadanie caegoprogramu napisanego w jzyku wysokiego poziomu na programw jzyku niszego poziomu

    Interpretacja przekadaniekolejno instrukcji jzykawysokiego poziomu na instrukcjepoziomu maszynowego

  • Generacje jzykw programowaniaPierwsza generacja - jzyki maszynowe (wewntrzne) specyficzne dla okrelonej maszyny. Programowanie w kodzie binarnym.

    Druga generacja -jzyki symboliczne, niskiego poziomu (Assembler). Poszczeglnym rozkazom maszynowym odpowiadaj symbole (mnemoniki). Aby program mg zosta wykonany na komputerze konieczne jest jego przetumaczenie na jzyk wewntrzny procesora.

    Trzecia generacja - jzyki wysokiego poziomu (Fortran, Pascal, C). Skadnia przypomina proste zdania jzyka naturalnego oraz wyraenia arytmetyczne. Jzyki wysokiego poziomu s niezalene od procesora. Musz by kompilowane lub interpretowane, aby mogy zosta wykonane przez procesor.

  • Generacje jzykw programowania cd.Czwarta generacja platformy programistyczne takie jak Delphi, C++ Builder czy te Visual Basic, pozwalajce na budowanie aplikacji z gotowych elementw.

    Pita generacja jzyki uywane do tworzenia programw wykorzystujcych tzw. sztuczn inteligencj (ang. AI ArtificialIntelligence)

  • Zasady programowania strukturalnegoprogram powinien skada si z nieduych jednostek zwanych procedurami, w ktrych obrbie nie ma ju mniejszych podprogramw w kodzie moduu powinno by tylko jedno wejcie i jedno wyjcie kod powinien by budowany z pomoc nastpujcych konstrukcji podstawowych: cigu sekwencyjnego rozgazienia warunkowego ptli ze sprawdzeniem warunku powtarzania na pocztku lub kocu cigu sekwencyjnego instrukcji wyboru jeden z wielumoliwe jest zagniedanie jednych konstrukcji wewntrz innych naley ograniczy do niezbdnego minimum stosowanie skoku bezwarunkowego program powinien zapewnia proste i jasne rozwizanie problemu, by napisany w poprawnym stylu, przejrzysty, czytelny

  • Programowanie obiektowe - definicjaProgramowanie obiektowe (ang. object-oriented programming ) metodologia tworzenia programw komputerowych, ktra definiujeprogramy za pomoc "obiektw" - elementw czcych stan (czyli dane) i zachowanie (czyli procedury, tu: metody). Obiektowy program komputerowy wyraony jest jako zbir takich obiektw,komunikujcych si pomidzy sob w celu wykonywania zada.

    Pojcia dotyczce programowania obiektowego:dziedziczenie (obiekty tworz struktur hierarchiczna, dziedzicz zachowania i waciwoci klas)hermetyzacja (obiekty s oddzielone od otoczenia zewntrznego)polimorfizm (waciwe znaczenie programu o danej nazwie jest uzalenione od obiektu, z ktrym ta nazwa jest powizana)

  • Niektre dziedziny zastosowa jzykw jzyki zorientowane obiektowo (C++, Smalltalk, Eiffel)jzyki do zarzdzania bazami danych (SQL)programowanie wizualne (AppWare, Synergy, VPLus)jzyki symulacyjne (Simula, Gabriel, TROLL)jzyki funkcyjne (Haskell, ASpecT)programowanie wspbiene (Fortran FM, CODE, NESL)modelowanie matematyczne (Matlab, Mathcad)jzyki opisu stron (Postscript, Tex, HPGL)programowanie stron WWW (PHP, JavaScript, PERL, DHTML)komputerowo wspomagana Inynieria Oprogramowania (ang. CASE)

  • Konstrukcja sterujca typu prawda/fasz

  • Konstrukcja iteracyjna dopki

  • Konstrukcja iteracyjna rb.. dopki

  • Konstrukcja iteracyjna powtarzaj

  • Konstrukcja sterujca wielowariantowa

  • Program Hello world! rne jzykiJzyk Brainfuck++++++++++[>+++++++>++++++++++>+++>+
  • Program Hello world! rne jzykiJzyk Ook!

    Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.Ook. Ook. Ook. Ook. Ook.Ook. Ook. Ook. Ook. Ook!Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?Ook! Ook! Ook? Ook! Ook? Ook.Ook! Ook. Ook. Ook? Ook.Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.Ook.Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook.Ook. Ook. Ook. Ook. Ook. Ook?Ook! Ook! Ook? Ook! Ook?Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook.Ook.Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.Ook! Ook. Ook. Ook. Ook. Ook.Ook. Ook. Ook! Ook. Ook.Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook.Ook.Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.Ook! Ook? Ook? Ook. Ook. Ook.Ook. Ook. Ook. Ook. Ook.Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook!Ook.Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook.Ook. Ook. Ook. Ook. Ook. Ook.Ook. Ook. Ook. Ook. Ook.Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook!Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook!Ook! Ook.Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook!Ook. Ook. Ook. Ook. Ook. Ook. Ook.Ook! Ook. Ook! Ook!Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!Ook! Ook.Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!Ook! Ook! Ook! Ook! Ook! Ook! Ook!Ook! Ook. Ook. Ook?Ook. Ook? Ook. Ook. Ook! Ook.

    Zaoenia jzyka:Jzyk programowania powinien by moliwy do zapisania i odczytania przez orangutanaAby byo to moliwe skadnia powinna by prosta, atwa do zapamitania i pod adnym wzgldem nie powinna zawiera sowa mapaBanany s dobre!