Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

ALGORYTM. SCHEMATY BLOKOWE. KONSTRUKCJE PROGRAMU, PODPROGRAMY, FUNKCJE Cele: Poznanie zasad rozwiązywania problemów informatycznych przy wykorzystaniu.

Podobne prezentacje


Prezentacja na temat: "ALGORYTM. SCHEMATY BLOKOWE. KONSTRUKCJE PROGRAMU, PODPROGRAMY, FUNKCJE Cele: Poznanie zasad rozwiązywania problemów informatycznych przy wykorzystaniu."— Zapis prezentacji:

1 ALGORYTM. SCHEMATY BLOKOWE. KONSTRUKCJE PROGRAMU, PODPROGRAMY, FUNKCJE Cele: Poznanie zasad rozwiązywania problemów informatycznych przy wykorzystaniu algorytmu. Osiągnięcia: Opracowanie algorytmu i przedstawienie go w postaci schematu blokowego.

2 Definicja i cechy algorytmu Algorytm - uporządkowany i skończony ciąg dokładnie określonych operacji na obiektach, do rozwiązania dowolnego zadania z określonej ich klasy. Cechy algorytmu: – skończoność (skończony zbiór operacji), – określoność (operacje i porządek ich wykonania powinny być ściśle określone, niezależnie od obiektów, na których są wykonywane), – ogólność (rozwiązywanie klasy zadań a nie pojedynczego zadania), – efektywność (rozwiązanie najmniejszym kosztem).

3 Euklides - NWD Słowo algorytm często kojarzone z Euklidesem (365 – 300 p.n.e) i jego słynnym przepisem na obliczanie największego wspólnego dzielnika 2 liczb a i b (NWD) – zapis w pseudokodzie Dane wejściowe a i b; krok 1:Czytaj a, b krok 2:Dopóki a <> b, wykonuj krok 3. Inaczej pisz a i zakończ algorytm. krok 3: Jeżeli a > b, to a:= a - b. Inaczej b:= b - a

4 Algorytm Euklidesa na zasadzie odejmowania

5 Algorytm Euklidesa – wersja 2 Dane są dwie liczby naturalne a i b. 1. Jeśli b 0 oblicz c jako resztę z dzielenia a przez b i zastąp a przez b, zaś b zastąp przez c. 2. Jeżeli b = 0, NWD wynosi a, w przeciwnym wypadku wróć do punktu pierwszego i kontynuuj. Przykład 1. Znajdź NWD liczb 243 i 111 za pomocą algorytmu Euklidesa, – 243 : 111 = 2, reszty 21 – 111 : 21 = 5, reszty 6 – 21 : 6 = 3, reszty 3 – 6 : 3 = 2, reszty 0 – Ostatnia niezerowa reszta wynosi 3. – NWD(243, 111) = 3 Przykład 2. Znajdź NWD liczb 15 i 12 za pomocą algorytmu Euklidesa, – 15 : 12 = 1, reszty 3 – 12 : 3 = 4, reszty 0 – NWD(15, 12) = 3

6 Złożoność obliczeniowa Złożoność obliczeniowa algorytmu: ilość zasobów komputerowych potrzebnych do jego wykonania. W algorytmach uwzględnia się czas działania i ilość zajmowanej pamięci czasowa T(n): – złożoność pesymistyczna – ilość zasobów potrzebna przy najgorszych danych wejściowych rozmiaru n, – złożoność oczekiwana algorytmu (średnia) dla typowych danych rozmiaru n pamięciowa – potrzebny rozmiar pamieci (słowa maszyny)

7 Złożoność czasowa Przyjętą miarą złożoności czasowej jest liczba operacji podstawowych w zależności od rozmiaru wejścia. Pomiar rzeczywistego czasu zegarowego jest mało użyteczny ze względu na silną zależność od sposobu realizacji algorytmu, użytego kompilatora oraz maszyny na której algorytm wykonujemy. Dlatego w charakterze czasu wykonania rozpatruje się zwykle liczbę operacji podstawowych (dominujących). Operacjami podstawowymi mogą być na przykład: podstawienie, porównanie lub prosta operacja arytmetyczna.

8 logarytmiczna T=log(n)

9 liniowa T=n

10 Liniowo- logarytmiczna T=n*log(n) Czas działania n*log(n) występuje np. dla algorytmów typu: zadanie rozmiaru n zostaje sprowadzone do 2 podzadań rozmiaru n/2 plus pewna ilość działań – liniowa względem n, do rozbicia i scalenia rozwiązań. Przykładem jest megasort

11 wielomianowa T=n m, m=2,3...

12 wykładnicza T=2 n (może też być n!)

13 Złożoność pamięciowa Złożoność pamięciowa jest miarą ilości wykorzystanej pamięci. Jako tę ilość najczęściej przyjmuje się użytą pamięć maszyny abstrakcyjnej (na przykład liczbę komórek pamięci maszyny RAM) w funkcji rozmiaru wejścia. Możliwe jest również obliczanie rozmiaru potrzebnej pamięci fizycznej wyrażonej w bitach lub bajtach.

14 Projektowanie algorytmów Do metodologii projektowania należy upraszczanie i wyodrębnianie niezależnych części (procedur, funkcji). Wyróżnia się algorytmy – szeregowe – równoległe (arch. wieloprocesorowa)

15 Projektowanie algorytmów: algorytmy zachłanne (nie analizujemy podproblemów dokładnie, tylko wybieramy najbardziej obiecującą w tym momencie drogę rozwiązania algorytmy wg strategii "dziel i rządź" (dzielimy problem na kilka mniejszych, a te znowu dzielimy, aż ich rozwiązania staną się oczywiste) algorytmy oparte na technice rekursji (rekurencji) (procedura lub funkcja wywołuje sama siebie, aż do uzyskania wyniku lub błędu) algorytmy oparte na programowaniu dynamicznym (podproblemy) algorytmy z powrotem

16 Podstawowe paradygmaty tworzenia algorytmów komputerowych: dziel i zwyciężaj – dzielimy problem na kilka mniejszych, a te znowu dzielimy, aż ich rozwiązania staną się oczywiste, programowanie dynamiczne – problem dzielony jest na kilka, ważność każdego z nich jest oceniana i po pewnym wnioskowaniu wyniki analizy niektórych prostszych zagadnień wykorzystuje się do rozwiązania głównego problemu, metoda zachłanna – nie analizujemy podproblemów dokładnie, tylko wybieramy najbardziej obiecującą w tym momencie drogę rozwiązania, programowanie liniowe – oceniamy rozwiązanie problemu przez pewną funkcję jakości i szukamy jej minimum, poszukiwanie i wyliczanie – kiedy przeszukujemy zbiór danych aż do odnalezienia rozwiązania, algorytm probabilistyczny – algorytm działa poprawnie z bardzo wysokim prawdopodobieństwem, ale wynik nie jest pewny, heurystyka – człowiek na podstawie swojego doświadczenia tworzy algorytm, który działa w najbardziej prawdopodobnych warunkach, rozwiązanie zawsze jest przybliżone.

17 Najważniejsze techniki implementacji algorytmów komputerowych proceduralność – algorytm dzielimy na szereg podstawowych procedur, wiele algorytmów współdzieli wspólne biblioteki standardowych procedur, z których są one wywoływane w razie potrzeby, praca sekwencyjna – wykonywanie kolejnych procedur algorytmu, według kolejności ich wywołań, na raz pracuje tylko jedna procedura, praca wielowątkowa – procedury wykonywane są sekwencyjnie, lecz kolejność ich wykonania jest trudna do przewidzenia dla programisty praca równoległa – wiele procedur wykonywanych jest w tym samym czasie, wymieniają się one danymi, rekurencja – procedura lub funkcja wywołuje sama siebie, aż do uzyskania wyniku lub błędu, obiektowość – procedury i dane łączymy w pewne klasy reprezentujące najważniejsze elementy algorytmu oraz stan wewnętrzny wykonującego je urządzenia.

18 Struktury danych tablica lista kolejka stos zbiór graf

19 Tablice w programowaniu Arrays (macierz, tablica) jest to podstawowa struktura danych składająca się z jednowymiarowej lub wielowymiarowej tabeli, którą program traktuje jak jeden obiekt. Wszystkie obiekty muszą być tego samego rodzaju. W tablicach mogą być np. liczby, napisy, znaki Do każdej danej zapisanej w tablicy można się odwołać przez nazwę tablicy i położenie tej danej wewnątrz tablicy.

20 Tablica Tablica w informatyce to kontener danych dostępnych, w którym poszczególne komórki dostępne są za pomocą kluczy, które najczęściej przyjmują wartości numeryczne. Rozmiar tablicy jest albo ustalony z góry (tablice statyczne), albo może się zmieniać w trakcie wykonywania programu (tablice dynamiczne). Praktycznie wszystkie języki programowania obsługują tablice – jedynie w niektórych językach funkcyjnych zamiast tablic używane są listy (choć tablice zwykle też są dostępne).

21 Lista Lista - rodzaj kontenera - dynamiczna struktura danych, używana w informatyce. Składa się z podstruktur wskazujących na następniki i/lub poprzedniki. L isty, to struktury, które umożliwiają tworzenie ciągów danych w taki sposób, że każda dana pamięta gdzie się znajduje kolejna. Istnieją dwie popularne implementacje struktury listy: tablicowa i wskaźnikowa. Tablicowa - jak wskazuje nazwa, lista zaimplementowana w ten sposób opiera się na tablicy obiektów (lub rekordów) danego typu. Wskaźnikowa - w tej implementacji każdy obiekt na liście musi (co nie było konieczne w wersji tablicowej) zawierać dodatkowy element: wskaźnik do innego obiektu tego typu. Wynika to z faktu, że to wskaźniki są podstawą nawigacji w tym typie listy, a dostęp do jej elementów jest możliwy wyłącznie przez wskaźnik.

22 Kolejka Kolejka (ang. queue) – liniowa struktura danych, w której nowe dane dopisywane są na końcu kolejki, a z początku kolejki pobierane są dane do dalszego przetwarzania (bufor typu FIFO, First In, First Out; pierwszy na wejściu, pierwszy na wyjściu). Stos Przeciwieństwem kolejki jest stos, bufor typu LIFO (ang. Last In, First Out; ostatni na wejściu, pierwszy na wyjściu), w którym jako pierwsze obsługiwane są dane wprowadzone jako ostatnie.

23 Graf Graf to – w uproszczeniu – zbiór wierzchołków, które mogą być połączone krawędziami, w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków. Grafy to podstawowy obiekt rozważań teorii grafów. Za pierwszego teoretyka i badacza grafów uważa się] Leonarda Eulera, który rozstrzygnął zagadnienie mostów królewieckich.

24 Sposoby zapisu algorytmów: w języku naturalnym (opisowo) zapis przy pomocy pseudo-kodu graficzny za pomocą schematów blokowych (schematy działania) przy pomocy języków programowania

25 Opis słowny Opis słowny jest to zapis kolejnych kroków algorytmu w języku naturalnym np. polskim – wyszczególniamy, jakie czynności należy wykonać – zaznaczamy, kiedy powinien nastąpić koniec algorytmu

26 Przykład opisu słownego Dany jest: – punkt płaszczyzny P(xp,yp) – środek S(a,b) – długość promienia r okręgu o równaniu (x-a)2+(y-b)2=r2. Określić położenie punktu P względem tego okręgu.

27 Rys. Dane: P(Xp,Yp), S(a,b), r okręgu Y P(Xp,Yp) b r d S(a,b) a X

28 Oznaczenia, rozwiązanie Oznaczamy d - odległość punktu od okręgu. Jeżeli dr, to punkt leży na zewnątrz okręgu

29 Opis słowny algorytmu Pobierz wartości xp,yp, a, b, r. Oblicz odległość punktu według wzoru Sprawdź, czy dr)punkt leży na zewnątrz okręgu (d>r) KONIEC

30 Pseudokod Umowny, zwykle nie istniejący i bardzo uproszczony język podobny do jakiegoś jezyka programowania, w którym opisany jest algorytm działania programu. Definiuje podstawowe pętle, warunki i typy danych. Stosowany w celach poglądowych, jako uniwersalny i czytelny dla każdego kod programu.

31 Pseudokod Pseudokodem nazywany jest taki sposób zapisu algorytmu, który, zachowując strukturę charakterystyczną dla kodu zapisanego w języku programowania, rezygnuje ze ścisłych reguł składniowych na rzecz prostoty i czytelności. Pseudokod nie zawiera szczegółów implementacyjnych, często też opuszcza się w nim opis działania podprocedur (jeśli powinien być on oczywisty dla czytelnika), zaś nietrywialne kroki algorytmu opisywane są z pomocą formuł matematycznych lub zdań w języku naturalnym. Nie istnieją w chwili obecnej szerzej przyjęte standardy zapisu pseudokodu. Większość autorów używa przyjętej ad hoc składni, często opierając się na składni istniejących języków programowania (Pascal, ALGOL, C).

32 Pseudokod Opis słowny algorytmu w języku częściowo sformalizowanym, podobnym np. do Pascala Elementy: – pseudosłowa kluczowe odpowiadają słowom kluczowym składającym się na instrukcje sterujące w językach proceduralnych, np.: jeśli – if, wtedy – then, powtórz – repeat dopóki – while, czytaj – read, pisz - write – wyrażenia arytmetyczne pozwalają na reprezentację obliczeń arytmetycznych

33 Pseudokod Pseudokod - elementy 1. Początek i koniec 2. Zmienne: całkowite, rzeczywiste, … 3. Instrukcja warunkowa: jeśli – if … then, if … then … else 4. Skok do instrukcji: goto 5. Etykiety 6. Czytaj i pisz: read, write 7. Pętle: powtarzaj - repeat, dopóki - while, dla - for 8. Programowanie strukturalne – procedury i funkcje

34 Schemat blokowy Reprezentacja graficzna algorytmu sekwencyjnego Elementy schematu blokowego: – elipsa (lub zaokrąglony prostokąt) początek/koniec algorytmu – prostokąt operacja – romb decyzja/warunek – równoległobok wczytanie/wyprowadzenie danych – strzałki kolejność sterowania/przepływu – etykiety oznaczenia, komentarz W języku angielskim schemat blokowy nazywamy flowchart.

35 Oznaczenia na schematach blokowych

36

37

38 START lub END Początek lub koniec algorytmu. W każdym algorytmie musi się znaleźć dokładnie jedna taka figura z napisem "Start" oznaczająca początek algorytmu oraz dokładnie jedna figura z napisem "Stop" oznaczająca koniec algorytmu. Blok symbolizujący początek algorytmu ma dokładnie jedną strzałkę wychodzącą a blok symbolizujący koniec ma co najmniej jedną strzałkę wchodzącą.

39 Proces W obrębie bloku procesu umieszczamy wszelkie obliczenia lub podstawienia. Proces ma dokładnie jedną strzałkę wchodzącą i dokładnie jedną strzałkę wychodzącą.

40 Decyzja Romb symbolizuje blok decyzyjny. Umieszcza się w nim jakiś warunek (np. "x>2"). Z dwóch wybranych wierzchołków rombu wyprowadzamy dwie możliwe drogi: gdy warunek jest spełniony (strzałkę wychodzącą z tego wierzchołka należy opatrzyć etykietą "Tak") oraz gdy warunek nie jest spełniony (Nie). Każdy romb ma dokładnie jedną strzałkę wchodzącą oraz dokładnie dwie strzałki wychodzące.

41 Odczyt, zapis Równoległobok jest stosowany do odczytu lub zapisu danych. W jego obrębie należy umieścić stosowną instrukcję np. Read(x) lub Write(x) (można też stosować opis słowny np.Czytaj x, "Drukuj x "). Figura ta ma dokładnie jedną strzałkę wchodzącą i jedną wychodzącą.

42 Proces już zdefiniowany Ta figura symbolizuje proces, który został już kiedyś zdefiniowany. Można ten blok porównać do procedury, którą definiuje się raz w programie, by następnie móc ją wielokrotnie wywoływać. Warunkiem użycia jest więc wcześniejsze zdefiniowanie procesu. Podobnie jak w przypadku zwykłego procesu i tu mamy jedno wejście i jedno wyjście.

43 Łącznik stronicowy Koło symbolizuje tzw. łącznik stronicowy. Może się zdarzyć, że chcemy "przeskoczyć" z jednego miejsca na kartce na inne (np. by nie krzyżować strzałek). Możemy w takim wypadku posłużyć się łącznikiem. Umieszczamy w jednym miejscu łącznik z określonym symbolem w środku (np. cyfrą, literą) i doprowadzamy do niego strzałkę. Następnie w innym miejscu kartki umieszczamy drugi łącznik z takim samym symbolem w środku i wyprowadzamy z niego strzałkę. Łączniki występują więc w parach, jeden ma tylko wejście a drugi wyjście.

44 Łącznik między-stronicowy Działa analogicznie jak stronicowy, lecz nie w obrębie strony. Przydatne w złożonych algorytmach, które nie mieszczą się na jednej kartce. Uwaga: jeśli stosujemy oba typy łączników w schemacie, to najlepiej jest stosować liczby do identyfikowania jednych i litery do drugich. Dzięki temu nie dojdzie do pomyłki.

45 Przykład: Obliczenie n! - pseudokod Policzenie silni z zadanej liczby naturalnej Pseudokod – wczytaj n – jeżeli n<0 idź do 1 – licznik=0, silnia=1 – jeżeli licznik != n wtedy powiększ licznik o 1, silnia=silnia*licznik, idź do 4 – wypisz silnia

46 Przykład: Obliczenie n! – schemat blokowy

47 Implementacja Realizacja algorytmu w postaci funkcji: int silnia (int n) { int l, s = 1; if ( n < 0) return -1; for (l=1; l <= n; l++) s = s * l; return s; }

48 Zapis programu na obliczenie n! w języku C #include int silnia (int); int main(void) { int n,s; printf("\nPodaj liczbe \"n\" do policzenia silni: "); scanf("%d", &n); s = silnia(n); if ( s == -1 ) { printf("Blad obliczen!\n"); return 1; } printf("\nSilnia wynosi: %d.\n", s); return 0; } // funkcja int silnia (int n) { int l,s=1; if ( n < 0) return -1; for (l=1; l <= n; l++) s = s * l; return s; }

49 Algorytmy - konwencja notacyjna 1) Deklaracja zmiennych – stałe P; – całkowite N; – rzeczywiste N; – logiczne N; {gdzie N - lista zmiennych, P - lista podstawień}

50 Deklaracje tablic: całkowite tablica N [W1:W2], W[W1:W2, W3:W5]; rzeczywiste tablica N [W1:W2], W[W1:W2, W3:W5]; gdzie: N - nazwa tablicy, W1, W2 W3, W4 - wyrażenia o wartościach całkowitych wyznaczające odpowiednio najmniejszy i największy numer elementu tablicy

51 3) Instrukcja przypisania n:=W; lub I; gdzie N - nazwa zmiennej, W- wyrażenie; I - instrukcja prosta

52 4) Instrukcje z wyborem jeśli W to I; jeśli W to I1 w przeciwnym przypadku I2; Przypadek N spośród (I1, I2,...In); gdzie – W - warunek, – I, I1,...In - instrukcje proste lub złożone, – N - wyrażenie przyjmujące wartości jedynie z przedziału [1, n]

53 5) Instrukcje iteracji powtarzaj I aż do W; dopóki W wykonuj I; dla N:=W1 do W2 wykonuj I; gdzie: – I - instrukcja prosta lub złożona – W - wariant kontynuacji lub zakończenia iteracji – N - nazwa zmiennej – W1, W2 - wyrażenia

54 6) Instrukcje wejścia / wyjscia czytaj (N); pisz (W); gdzie – N - nazwa zmiennej; – W - wyrażenie

55 7) Instrukcja procedury Deklaracja : procedura P(W); S; treść; gdzie: – P - nazwa procedury, – W - wykaz parametrów formalbycg, – S - specyfikacja (deklaracja) parametrów formalnych Wywołanie: P(WA); gdzie: – P - nazwa procedury, – WA - wykaz parametrów aktualnych

56 8) Instrukcja procedury funkcyjnej Deklaracja: całkowite procedura P(W); S; rzeczywiste procedura P(W); S; logiczne procedura P(W); S; gdzie: – P - nazwa procedury – W - wykaz parametrów formalnych, – S - specyfikacja parametrów formalnych. Wywołanie: N:= W1 + P(WA); gdzie: – P - nazwa procedury, – N - nazwa zmiennej, – W1 - wyrażenia, – WA - wykaz parametrów aktualnych.

57 Instrukcja prosta i złożona 9) Instrukcja prosta Każda z instrukcji opisanych w punktach 3 do 8. 10) Instrukcja złożona Jest to ciąg instrukcji prostych lub złożonych, określonych następująco: początek I1; I2;... In koniec gdzie: Ii - instrukcja prosta lub złożona

58 Instrukcja warunkowa wyboru if: jeśli W to I

59 Instrukcja wyboru if W then I1 else I2 - alternatywa : jeśli W to I1 w przeciwnym przypadku I2;

60 Instrukcja wyboru – case przypadek W spośród (I1, I2, …In)

61 Iteracje - powtarzaj I aż do W;

62 Instrukcja iteracji while : dopóki W wykonuj I;

63 Instrukcja iteracji for - dla N:=W1 do W2 wykonuj I;

64 Przykład schematu blokowego: obliczenie iloczynu n liczb Dany jest zbiór podanych n liczb: X1, X2,..., Xn. Należy obliczyć iloczyn y=P Xi = X1*X2*...*Xn. Algorytm 1) Język naturalny: A.Przyjmij wartość y równą 1 i skocz do B B.Przyjmij wartość i równą 1 i przejdź do C C.Przyjmij y równe iloczynowi y*Xi i skocz do B D.Jeżeli i=n to Koniec. W przeciwnym razie przyjmij i równe i+1 i skocz do C

65 2) Pseudokod - obliczenie iloczynu n liczb 1.y :=1 2.i := 1 3.y := y*Xi 4.Jeżeli i=n to Koniec. W przeciwnym razie i := i+1 i skocz do 3

66 3) Schemat blokowy - obliczenie iloczynu n liczb

67 Konstrukcje programu spotykane w schematach blokowych: sekwencja instrukcji – blok ( begin… end - Pascal; { } - C, END - Basic) Test (if, if … else), instrukcja wyboru (case, switch), instrukcje iteracji (while, repeat, do while, for), instrukcje we/wy (read, write), Procedury (procedure), funkcje (function)

68 Sekwencja instrukcji, operacje testu

69 Instrukcja wyboru: case of, switch case, select case

70 Instrukcja while

71

72

73 Podprogramy – funkcje i procedury Podprogram jest to wyróżniona część programu komunikująca się z pozostałą częścią w ściśle określony sposób. Wywołanie podprogramu polega na – podaniu jego nazwy oraz – w nawiasach parametrów.

74 Do czego służą procedury i funkcje? Procedury służą do zamknięcia pewnych standardowych, wielokrotnie wykonywanych ciągów czynności w pewną całość "widzianą" przez program pod konkretną nazwą i operującą w danej chwili na konkretnych argumentach. Funkcja jest podobna do procedury, różni się od niej tym, że pod swoją nazwą zwraca pewną wartość. Zastosowanie procedur i funkcji pozwala na optymalizację wykorzystania pamięci. Pamięć jest przydzielana dynamicznie podczas wywołania.

75 Podprogram (funkcja lub procedura) Podprogram to wydzielona część programu wykonująca jakieś operacje. Podprogramy stosuje się, aby uprościć program główny i zwiększyć czytelność kodu. W pewnych językach programowania dzieli się podprogramy na funkcje i procedury:

76 Funkcja - function Funkcja ma wykonywać obliczenia i zwracać jakąś wartość, nie powinna natomiast mieć żadnego innego wpływu na działanie programu (np. funkcja obliczająca pierwiastek kwadratowy)

77 Procedura Procedura nie zwraca jednej wartości jak funkcja, zamiast tego wykonuje pewne działania (np. procedura czyszcząca ekran) Przez zwracanie wartości należy rozumieć możliwość użycia wywołania funkcji wewnątrz wyrażenia. Procedury często też zwracają wartości, ale poprzez odpowiednie parametry.

78 Podział na funkcje i procedury Podział na funkcje i procedury występuje w językach takich jak Pascal i Ada. W języku Pascal istnieją 2 rodzaje podprogramów: procedury i funkcje. W pozostałych językach (m. in. w C i C++) nie ma już takiego rozróżnienia i funkcją jest każdy podprogram, niezależnie od tego czy zwraca jakieś wartości i czy ma wpływ na program.

79 Struktura programów w językach Basic, Pascal, C: Basic ' Komentarz' Początek programu głównego - brak wyróżnienia ' Deklaracje zmiennych, funkcji, podprogramow ' DECLARE function funkcja1 () ' DECLARE SUB podprogram1() I1 : I2 Instrukcje I1 i I2 – może być kilka w linii In Instrukcja In END ' Nie musi być jeśli po nim nie m a definicji procedur lub funkcji

80 Pascal { Pascal:} Program Nazwa; {Komentarz} {Deklaracje} Begin {Instrukcje} I1; I2; In; End.

81 Język C /C++ // C // Komentarz // Deklaracje, definicje funkcji void funkcja() { }; main() { // Instrukcje // Sekwencja instrukcji - poczatek {I1; I2; // Instrukcje I1; I2 In; // Instrukcja In } // Sekwencja instrukcji - koniec } // koniec programu main

82 Przykłady algorytmów 1.Sprawdzanie parzystości liczby całkowitej 2.Obliczenie pierwiastka metoda iteracyjną 3.Algorytm Euklidesa znajdowania największego wspólnego dzielnika 4.Obliczenie azymutu ze współrzędnych 1.Metoda 1 (bez użycia czwartaków) 2.Metoda 2 obliczenia azymutu ze współrzędnych, z użyciem czwartaków

83

84

85

86

87


Pobierz ppt "ALGORYTM. SCHEMATY BLOKOWE. KONSTRUKCJE PROGRAMU, PODPROGRAMY, FUNKCJE Cele: Poznanie zasad rozwiązywania problemów informatycznych przy wykorzystaniu."

Podobne prezentacje


Reklamy Google