Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Podobne dokumenty
Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu Tablice (wstęp) Rzut okiem na języki programowania

Algorytmy. Programowanie Proceduralne 1

Algorytm. a programowanie -

Algorytmy. Programowanie Proceduralne 1

1 Wprowadzenie do algorytmiki

Wstęp do informatyki

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

2.8. Algorytmy, schematy, programy

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Wprowadzenie do algorytmiki

Definicje. Algorytm to:

Algorytm Euklidesa. Największy wspólny dzielnik dla danych dwóch liczb całkowitych to największa liczba naturalna dzieląca każdą z nich bez reszty.

Algorytmy i schematy blokowe

Technologie informacyjne - wykład 12 -

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

Definicja algorytmu brzmi:

Informatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

Algorytmy i struktury danych. Wykład 4

Wykład z Technologii Informacyjnych. Piotr Mika

Język ludzki kod maszynowy

Algorytm. Krótka historia algorytmów

Pascal - wprowadzenie

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Zapis algorytmów: schematy blokowe i pseudokod 1

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Podprogramy. Procedury

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p.

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Algorytm. Definicja i algorytmu METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE

Języki programowania zasady ich tworzenia

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

INFORMATYKA. Algorytmy.

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytmy od problemu do wyniku

Algorytm. Algorytmy Marek Pudełko

Informatyka 1. Procedury i funkcje, struktura programu w Pascalu

Warunki logiczne instrukcja if

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

Algorytm. Krótka historia algorytmów

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Luty 2001 Algorytmy (7) 2000/2001

Podstawy Programowania Algorytmy i programowanie

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Algorytm 2.1. Rys Czy zupa jest słona? Przygotuj. Gotowe danie START. Przepis... STOP NIE TAK

Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Wstęp do Informatyki

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Programowanie w Turbo Pascal

Wstęp do informatyki- wykład 2

Wstęp do programowania

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Podstawy programowania

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Podstawy Informatyki. Programowanie. Inżynieria Ciepła, I rok. Co to jest algorytm? Istotne cechy algorytmu

FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;

PROSTE RACHUNKI WYKONYWANE ZA POMOCĄ KOMPUTERA

Algorytmy, reprezentacja algorytmów.

EGZAMIN MATURALNY Z INFORMATYKI

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

Informatyka 1. Wyrażenia i instrukcje cd., ręczna symulacja, operacje wejścia/wyjścia

Programowanie w języku Pascal

Ilość cyfr liczby naturalnej

Wstęp do Informatyki

ForPascal Interpreter języka Pascal

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Programowanie w Baltie klasa VII

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

1. Algorytmy Składniki algorytmu Podstawowymi elementami każdego algorytmu są dane oraz operacje Metody opisu algorytmu

Algorytmy i struktury danych. wykład 2

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

EGZAMIN MATURALNY Z INFORMATYKI 13 MAJA 2019 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 90 minut

ALGORYTMY I PROGRAMY

Transkrypt:

Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL 1

Część 1 Pojęcie algorytmu 2

I. Pojęcie algorytmu Trochę historii Pierwsze opisy, które później nazwano algorytmami, dotyczyły rozwiązań zadań matematycznych. Pomiędzy 400 a 300 rokiem p.n.e. grecki matematyk i filozof Euklides, wymyślił pierwszy znany nam nietrywialny algorytm, czyli przepis na realizację zadania. Był to algorytm znajdowania największego wspólnego dzielnika dwóch dodatnich liczb całkowitych. 3

I. Pojęcie algorytmu Trochę historii Algorytm Euklidesa obliczanie największego wspólnego dzielnika dwóch liczb naturalnych. Start wczytaj a wczytaj b 1. Dane są dwie liczby naturalne a i b. 2. Oblicz c jako resztę z dzielenia a przez b 3. Zastąp a przez b, zaś b przez c. 4. Jeżeli b = 0, to szukane NWD wynosi a, w przeciwnym wypadku wróć do punktu drugiego i kontynuuj. TAK b <> 0 c := a mod b a := b b := c NIE NWD(liczba całkowita a, liczba całkowita b) dopóki b różne od 0 c := reszta z dzielenia a przez b a := b b := c zwróć a wypisz a Stop ten sam algorytm zapisany na cztery sposoby 4

I. Pojęcie algorytmu Trochę historii Słowo algorytm pochodzi od nazwiska matematyka arabskiego, który żył na przełomie VIII i IX wieku naszej ery. Muhammad ibn Musa al-chorezmi zasłużył się stworzeniem kilku dzieł z dziedziny matematyki, w których opisał dużą ilość reguł matematycznych (w tym dodawania, odejmowania, mnożenia i dzielenia zwykłych liczb dziesiętnych). Opis tych procedur był na tyle precyzyjny i formalny, jak na tamte czasy, że właśnie od jego nazwiska pochodzi słowo algorytm. 5

I. Pojęcie algorytmu Cechy algorytmu Intuicyjnie algorytm kojarzy się z metodą rozwiązywania zadania, przepisem postępowania czy też ze schematem działania. Należy jednak podkreślić, że nie każda metoda czy schemat jest algorytmem. Algorytm powinien spełniać sześć warunków. 6

I. Pojęcie algorytmu Cechy algorytmu 7

I. Pojęcie algorytmu Cechy algorytmu 1. Musi posiadać określony stan początkowy, czyli operację od której zaczyna się jego realizacja. 2. Ilość operacji potrzebnych do zakończenia pracy musi być skończona - warunek dyskretności (skończoności). 3. Musi dać się zastosować do rozwiązywania całej klasy zagadnień, a nie jednego konkretnego zadania - warunek uniwersalności. 4. Interpretacja poszczególnych etapów wykonania musi być jednoznaczna - warunek jednoznaczności. 5. Cel musi być osiągnięty w akceptowalnym czasie - warunek efektywności. 6. Musi posiadać wyróżniony koniec. 8

Część 2 Notacja algorytmów 9

II. Notacja algorytmów Metody zapisu algorytmu 1. Opis słowny za pomocą ograniczonego podzbioru języka naturalnego 1. Dane są dwie liczby naturalne a i b. 2. Oblicz c jako resztę z dzielenia a przez b 3. Zastąp a przez b, zaś b przez c. 4. Jeżeli b = 0, to szukane NWD wynosi a, w przeciwnym wypadku wróć do punktu drugiego i kontynuuj. 2. Drzewo algorytmu 10

II. Notacja algorytmów Metody zapisu algorytmu 3. Schematy blokowe. Na razie potraktujmy to jako przykład metody zapisu - do tego algorytmy wrócimy na następnym wykładzie 11

II. Notacja algorytmów Metody zapisu algorytmu 3. Pseudo-język. Inną metodą przedstawienia algorytmu jest użycie zapisu za pomocą pseudojęzyka programowania. Zaletą tego podejścia jest bardzo łatwa implementacja algorytmu za pomocą konkretnie wybranego, istniejącego języka programowania. Wadą jest mniejsza przejrzystość zapisu. Algorytm Euklidesa w pseudokodzie: NWD(liczba całkowita a, liczba całkowita b) dopóki b różne od 0 c := reszta z dzielenia a przez b a := b b := c zwróć a Istnieją różne wersje pseudo-języka. Najczęściej jest to PASCAL pozbawiony informacji dla kompilatora (i czasem przetłumaczony na polski) 12

II. Notacja algorytmów Zapis algorytmów zmienne i operatory Zmienna to w programowaniu element programu, który może mieć przypisaną pewną wartość (wartość może być różna w różnych momentach wykonania programu). Zmienna jest uchwytem do tej wartości. W większości języków programowania (poza językami najwyższego poziomu) zmienne musimy zadeklarować, czyli poinformować kompilator, o tym że taka zmienna wystąpi i o tym jaki typ danych zamierzamy w niej przechowywać. Umożliwia to kompilatorowi zarezerwowanie odpowiedniego miejsca w pamięci operacyjnej i dobrane właściwych procedur obliczeniowych (na poziomie języka maszynowego). Dziś spotkamy typy: REAL (liczba rzeczywista) INTEGER (całkowita) 13

II. Notacja algorytmów Zapis algorytmów zmienne i operatory Operatory stosowane w pseudo-języku oraz w schematach blokowych: + - * / - chyba nie wymagają komentarza div mod sgr (.. ) sqrt (..) - operator dzielenia całkowitoliczbowego - operator reszty z dzielenia całkowitoliczbowego - kwadrat - pierwiastek kwadratowy = - pytanie czy jest równe (alternatywnie ==) <> - pytanie czy jest różne ( ) (alternatywnie!=) > i < - pytanie czyn jest większe i czy jest mniejsze >= i <= - większe lub równe ( ) i mniejsze lub równe ( ) := - operator przypisania (podstawienia) (alternatywnie =) 14

II. Notacja algorytmów Zapis algorytmów zmienne i operatory Dwie ważne uwagi: Zmienna w programie komputerowym (i algorytmie) to nie to samo co zmienna w zadaniu matematycznym. Rozróżniaj operatory: = - pytanie czy równe := - operator przypisania x = x + 1 x := x + 1 - w matematyce jest to równie sprzeczne - operacja podstawienia (wartość zapisaną w zmiennej x zwiększamy o 1) 15

II. Notacja algorytmów Zapis algorytmów schemat blokowy Stan - Określa zwykle moment startu i końca. Zapis/odczyt - Wskazuje miejsce w których odbywa się zapis danych (lub ich odczyt). Instrukcje - Blok instrukcji, które mają być wykonane. Decyzja - Wyliczenie warunku logicznego znajdującego się wewnątrz symbolu i podjęcie na jego podstawie decyzji. Łącznik - Połączenie z inną częścią schematu blokowego, np. gdy nie mieści się on na jednej stronie. 16

II. Notacja algorytmów Zapis algorytmów schemat blokowy Schemat blokowy tworzony jest według następujących reguł: 1. Schemat blokowy składa się z bloków połączonych zorientowanymi liniami; 2. Bloki obrazują ciąg operacji; 3. Zawsze wykonywane są albo wszystkie instrukcje w bloku albo żadna; 4. Dalsze operacje nie zależą od poprzednich wariantów, chyba że zależności te zostały przekazane za pomocą danych; 5. Kolejność wykonania operacji jest ściśle określona przez zorientowane 6. Linie łączące poszczególne bloki; 7. Do każdego bloku może prowadzić co najwyżej jedna linia; 8. Linie mogą się łączyć ale nie mogą się rozdzielać (bez bloku decyzyjnego). 17

Część 3 Rodzaje algorytmów 18

III. Rodzaje algorytmów Algorytmy liniowe Start wczytaj a wczytaj b d:=a+b wypisz d Stop program dodaj; var a,b,d : integer; begin write( podaj a ); readln(a); write( podaj b ); readln(b); d:=a*b; write( pole prostokata: ); writeln( x2=,x2); end. 19

III. Rodzaje algorytmów Algorytmy rozgałęzione TAK wypisz a Start wczytaj a wczytaj b a > b NIE wypisz b program maksimum; var a,b : integer; begin write( podaj a ); readln(a); write( podaj b ); readln(b); if a > b then writeln( maksimum wynosi, a) else writeln( maksimum wynosi, b) end. Stop Stop 20

III. Rodzaje algorytmów Algorytmy rozgałęzione przykład Przykład: ax 2 + bx + c = 0 Start wczytaj a wczytaj b wczytaj c delta:=sqr(b)-4*a*c NIE delta < 0 x1:=(-b+sqrt(delta))/(2*a) x2:=(-b-sqrt(delta))/(2*a) wypisz x1 wypisz x2 Stop TAK wypisz brak rozwiązań program delta; var a,b,c,delta,x1,x2 : real; begin write( podaj a ); readln(a); write( podaj b ); readln(b); write( podaj c ); readln(c); Delta:=sqr(b)-4*a*c; if Delta<0 then writeln( Brak rozwiązania ) else begin x1:=(-b+sqrt(delta))/(2*a); x2:=(-b-sqrt(delta))/(2*a); writeln( x1=,x1); writeln( x2=,x2); end; end. 21

III. Rodzaje algorytmów Algorytmy rozgałęzione wielokrotnie NIE NIE a = b Start wczytaj a wczytaj b TAK a > b TAK program porownanie; var a,b : integer; begin write( podaj a ); readln(a); write( podaj b ); readln(b); if a > b then writeln( większa była, a) else if a = b writeln( sa rowne ) else writeln( wieksza była, b) end. wypisz b wypisz są równe wypisz a Stop 22

III. Rodzaje algorytmów Algorytmy rozgałęzione wielokrotnie TAK Start wczytaj a wczytaj b wczytaj c delta:=sqr(b)-4*a*c NIE x0:=(-b)/(2*a) wypisz x0 delta < 0 delta = 0 Stop TAK NIE x1:=(-b+sqrt(delta))/(2*a) x2:=(-b-sqrt(delta))/(2*a) wypisz x1 wypisz x2 ax 2 + bx + c = 0 II wersja wypisz brak rozwiązań program delta_2; var a,b,c,delta,x1,x2,x0 : real; begin write( podaj a ); readln(a); write( podaj b ); readln(b); write( podaj c ); readln(c); Delta:=sqr(b)-4*a*c; if Delta<0 then writeln( Brak rozwiązania ) else if Delta=0 then begin x0:=(-b)/(2*a); writeln( x0=,x0); end; else begin x1:=(-b+sqrt(delta))/(2*a); x2:=(-b-sqrt(delta))/(2*a); writeln( x1=,x1); writeln( x2=,x2); end; end. 23

III. Rodzaje algorytmów Algorytmy iteracyjny NWW algorytm Euklidesa Start wczytaj a wczytaj b TAK b <> 0 c := a mod b a := b b := c wypisz a NIE program euklides; var a,b,c : integer; begin write( podaj a ); readln(a); write( podaj b ); readln(b); while b<>0 do begin c := a mod b; a := b; b := c; end; writeln( NWD=,a); end. Zapis w pseudokodzie NWD(liczba całkowita a, liczba całkowita b) dopóki b różne od 0 c := reszta z dzielenia a przez b a := b b := c zwróć a Stop 24

Literatura: W prezentacji wykorzystano fragmenty i zadania z książek i stron internetowych: Piotr Fulmański, Ścibór Sobieski, Wstęp do informatyki, Podręcznik, Wydawnictwo Uniwersytetu Łódzkiego, 2005 ISBN: 83-7171-844-6 Maciej M. Sysło, Algorytmy, WSiP, Warszawa 2002, ISBN: 83-02-06659-1 http://pl.wikipedia.org 25