Zapis blokowy algorytmów INSTYTUT INFORMATYKI UNIWERSYTETU JAGIELLOŃSKIEGO Zapis blokowy algorytmów Małgorzata Świstak Zaliczenie z TI STUDIA PODYPLOMOWE Z INFORMATYKI DLA NAUCZYCIELI
Zawartość prezentacji Podstawowe informacje Zasady tworzenia schematu blokowego Podstawowe bloki funkcjonalne Bloki graniczne i wejścia-wyjścia Blok obliczeniowy (przetwarzania) Blok decyzyjny Dodatkowe bloki funkcjonalne i elementy pomocnicze Bloki podprogramu Elementy dodatkowe Przykładowy schemat blokowy Koniec
Podstawowe informacje Schemat blokowy jest graficznym zapisem działań składających się na algorytm oraz kolejności ich wykonania. Zbudowany jest z symboli graficznych połączonych liniami. Umożliwia zapis dowolnego problemu algorytmicznego z zachowaniem typowych struktur charakterystycznych dla języków programowania, np. pętli, funkcji Zalety schematu blokowego: prosta i przejrzysta budowa, elastyczność zapisów – umożliwia przedstawienie problemu w dużym uprosz-czeniu, jak i na wysokim stopniu uszczegółowienia możliwość zapisu z użyciem składni wybranego języka programowania, łatwa kontrola poprawności algorytmu, Spis treści Koniec Przykład
Zasady tworzenia schematu blokowego Schemat blokowy konstruowany jest z bloków łączonych liniami, wyznaczającymi drogę przepływu danych i określającymi związki informacyjne zachodzące pomiędzy poszczególnymi operacjami i ustalającymi kolejno ich wykonywania Jeśli kierunek działania jest inny niż naturalny, to linie zaopatruje się w grot strzałki. Linie nie mogą wychodzić z nikąd i prowadzić do nikąd Każdy algorytm rozpoczyna się blokiem początku i kończy blokiem końca Blok Wejścia-Wyjścia przeznaczony jest do definiowania operacji wprowadzania danych i wyprowadzania wyników przetwarzania Proces przetwarzania opisywany jest w blokach obliczeniowych, w których definiuje się operację lub grupy operacji, w wyniku których ulega zmianie wartość, postać lub miejsce zapisu danych Blok decyzyjny definiuje operację polegającą na wyborze jednej z dwóch alternatywnych dróg działania Blok podprogramu oznacza proces uprzednio zdefiniowany do którego odwołuje się przy użyciu bloku wyboru podprogramu Spis treści Koniec Przykład
Bloki graniczne i wejścia-wyjścia Początek lub koniec algorytmu START 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ą. STOP Wprowadzanie danych i wyprowadzanie wyników Równoległobok jest stosowany do odczytu lub zapisu danych. W jego obrębie należy umieścić stosowną instrukcję np. Readln(x) lub Writeln(x) (można też stosować opis słowny np. "Drukuj x na ekran"). Figura ta ma dokładnie jedną strzałkę wchodzącą i jedną wychodzącą. czytaj: a, b, c Spis treści Koniec Przykład
Blok obliczeniowy (przetwarzania) Przetwarzanie danych Jest to figura oznaczająca proces. W jej obrębie umieszczamy wszelkie obliczenia lub podstawienia. Oznacza wykonanie operacji, w efekcie której zmienią się wartości, postać lub miejsce zapisu danych. Proces ma dokładnie jedną strzałkę wchodzącą i dokładnie jedną strzałkę wychodzącą. W pojedynczym bloku obliczeniowym można umieszczać wiele operacji. Są one wykonywane w kolejności ich zapisania i := i + 1 suma := 0 sr := suma / i i := i + 1 Spis treści Koniec Przykład
Blok decyzyjny Wybór jednego z dwóch wariantów 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" lub „T” ) oraz gdy warunek nie jest spełniony (etykieta „Nie” lub „N”. Każdy romb ma dokładnie jedną strzałkę wchodzącą oraz dokładnie dwie strzałki wychodzące suma := 100 N T Spis treści Koniec Przykład
Bloki podprogramu Wykonywanie funkcji lub procedur Ta figura symbolizuje proces, który został już kiedyś zdefiniowany. Można ją porównać do procedury lub funkcji, którą definiuje się raz w programie, by następnie móc ją wielokrotnie wy-woł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. Wywołanie Procedury SORTOWANIE Spis treści Koniec Przykład
Elementy dodatkowe Łączniki: stronicowy Służą do łączenia odrębnych części schematu leżacych na tej samej stronie (np. by nie krzyżować strzałek). Umieszcza się w jednym miejscu łącznik z określonym symbolem w środku (np. cyfrą, literą) i doprowadza do niego strzałkę. Następnie w innym miejscu kartki umiesz-cza się drugi łącznik z takim samym symbolem w środku i wyprowadza z niego strzałkę. Łącznik międzystronicowy działa analogicznie jak pierw- szy, lecz nie w obrębie strony. Przydatne w złożonych algorytmach, które nie mieszczą się na jednej kartce. A A międzystronicowy 10 10 Komentarz Schemat blokowy może zawierać komentarz do algorytmu. Jest to zapis tekstowy precyzujący realizowane operacje umieszczone wewnątrz omówionych wcześniej symboli graficznych Spis treści Koniec Przykład
Przykładowy schemat blokowy Kliknij dowolny element, żeby uzyskać o nim dodatkowe informacje START A czytaj: n, a, x a[sr]<x T N prw:=sr+1 ost:=sr-1 Posortuj rosnąco tablicę „a” B prw:=1; ost:=n; k:=0 k>0 lub prw>ost N sr:=(prw+ost)div2 T a[sr]=x N wypisz: k A T k:=sr B STOP Spis treści Koniec Poprzedni slajd