Materiały pochodzą z Platformy Edukacyjnej Portalu www.szkolnictwo.pl Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu www.szkolnictwo.pl mogą być wykorzystywane przez jego Użytkowników wyłącznie w zakresie własnego użytku osobistego oraz do użytku w szkołach podczas zajęć dydaktycznych. Kopiowanie, wprowadzanie zmian, przesyłanie, publiczne odtwarzanie i wszelkie wykorzystywanie tych treści do celów komercyjnych jest niedozwolone. Plik można dowolnie modernizować na potrzeby własne oraz do wykorzystania w szkołach podczas zajęć dydaktycznych.
Schemat blokowy algorytmu
Schemat blokowy Schemat blokowy jest graficznym przedstawieniem zbioru operacji tworzących pełny algorytm i wzajemnych powiązań między nimi, uwzględniający kolejność wykonywania operacji. W schemacie blokowym poszczególne operacje przedstawione są za pomocą odpowiednio połączonych skrzynek (klocków, bloków). Połączenia określają kolejność i sposób wykonywania operacji realizujących dany algorytm. Schematy blokowe pozwalają na prostą zamianę instrukcji na instrukcje programu komputerowego.
Schemat blokowy – elementy budowy strzałka - wskazuje jednoznacznie powiązania i ich kierunek operand - prostokąt, do którego wpisywane są wszystkie operacje z wyjątkiem instrukcji wyboru predykat - romb, do którego wpisywane są wyłącznie instrukcje wyboru etykieta - owal służący do oznaczania początku bądź końca sekwencji schematu (kończą, zaczynają lub przerywają/przenoszą schemat) Schemat blokowy pozwala dostrzec istotne etapy algorytmu i logiczne zależności między nimi.
Elementy schematu blokowego Reprezentacja graficzna operacji (skrzynka) Opis operacji Uwagi Początek algorytmu Występuje jeden START, jedno połączenie wychodzące, żadnych wchodzących Zakończenie algorytmu Posiada jedno połączenie wchodzące, może wystąpić wiele operacji KONIEC Blok wejścia Posiada po jednym wchodzącym i wychodzącym połączeniu Blok wyjścia START KONIEC WPROWADŹ WYPROWADŹ
Reprezentacja graficzna operacji (skrzynka) Opis operacji Uwagi Blok decyzyjny (warunkowy) Posiada jedno połączenie wejściowe, dwa wyjściowe. Dla TAK – warunek jest spełniony, NIE – warunek niespełniony Blok operacyjny (wykonywanie działań) Występuje jedno połączenie wejściowe i jedno wyjściowe. W algorytmie może wystąpić wiele bloczków operacji Połączenie Służy do łączenia bloków, tworzy je linia prosta lub łamana zakończona strzałką Łącznik Ma za zadanie łączenie dużego algorytmu niemieszczącego się na jednej stronie, posiada ten sam numer części łączonych CZY L>0 := 1
Zasady budowania schematów blokowych każda operacja, relacja lub informacja jest umieszczana w skrzynce kolejność wykonywania operacji wyznaczają połączenia między skrzynkami każde połączenie jest zaczepione początkiem do skrzynki, a końcem do innej skrzynki lub innego połączenia, żadne połączenie nie rozdziela się rozgałęzienie sieci działań możliwe jest tylko dzięki skrzynkom warunkowym schemat posiada jedną skrzynkę START i co najmniej jedną skrzynkę STOP ze skrzynki START można przejść do skrzynki STOP poruszając się po sieci działań ze skrzynki START można dotrzeć wzdłuż połączeń do dowolnej innej skrzynki schematu z każdej skrzynki istnieje przejście wzdłuż połączeń do jednej ze skrzynek STOP
Struktury schematów blokowych Schemat blokowy liniowy Schemat blokowy liniowy występuje w zadaniach, w których każda z operacji elementarnych nie zawiera relacji (warunku) i powtórzeń (iteracji). Realizacja poszczególnych sąsiednich operacji następuje według ustalonej kolejności od operacji początkowej do końcowej. Przykłady: liczenie pola powierzchni, obwodu figur płaskich.
Struktury schematów blokowych Schemat blokowy z rozgałęzieniami Schematy blokowe z rozgałęzieniami spotyka się w zadaniach dla których kolejność poszczególnych etapów w rozwiązaniu może się zmieniać w zależności od warunków określonych w sformułowaniu problemu. Cechą tych algorytmów jest to, iż w trakcie realizacji przechodzi się tylko po jednej z możliwych dróg, przy czym każdy oddzielny etap realizacji algorytmu wykonywany jest dokładnie jeden raz. W rozwiązaniach wykorzystywane są drzewa logiczne. Przykłady: znajdowanie liczby najmniejszej, rozwiązanie równania liniowego i kwadratowego .
Struktury schematów blokowych Schemat blokowy cykliczny - z pętlą Algorytmy dla problemów wymagających powtarzania poszczególnych etapów procesu obliczeniowego nazywamy cyklicznymi (czyli z pętlą). Przez pętlę w schemacie blokowym rozumiemy tą część schematu, która opisuje drogę (obwód) zamkniętą zgodnie z kierunkiem połączenia (obiegu). Pętla stanowi graficzny opis powtarzania czynności. Ciąg wszystkich czynności wykonywanych przy jednokrotnym przebiegu pętli nazywamy cyklem pętli. W każdej pętli musi wystąpić: co najmniej jedna skrzynka operacyjna (np. wyliczeniowa) zawierająca opis powtarzanej czynności modyfikacja w każdym cyklu co najmniej jednej wartości zmiennej występującej w pętli skrzynka decyzyjna z warunkiem, czy pętla ma być nadal powtarzana czy też zakończona Często w pętli występują zmienne nazywane licznikami, których wartości w algorytmie określają ilość zrealizowanych cykli pętli.
Struktury schematów blokowych Schemat blokowy cykliczny - z pętlą a) ze sprawdzeniem warunku na początku b) ze sprawdzeniem warunku na końcu
Poprawność algorytmu Algorytm, który został poprawnie skonstruowany posiada następujące cechy: posiada dane wejściowe – niekoniecznie w formie numerycznej – pochodzące z dobrze zdefiniowanego źródła produkuje pewien wynik – niekoniecznie numeryczny jest precyzyjnie zdefiniowany, tzn. każdy krok algorytmu musi być jednoznacznie określony jest skończony – każdy algorytm musi dać wynik, rozwiązanie
Instrukcja warunkowa Działa według jednego z dwóch przedstawionych schematów: jeśli spełniony jest warunek W, wykonaj instrukcję A jeśli spełniony jest warunek W, to wykonaj instrukcję A; w przeciwnym razie wykonaj instrukcję B Instrukcje A i B opisują pojedynczą instrukcję lub instrukcję składającą się z ciągu instrukcji wykonywanych sekwencyjnie. Instrukcja warunkowa pozwala dokonać wyboru jednej z dwóch dalszych dróg wykonania algorytmu. Lista kroków – instrukcja warunkowa – przykład: K01: Podnieś słuchawkę K02: Wybierz cyfrę 1 K03: Wybierz cyfrę 1 K04: Wybierz cyfrę 2 K05: Czy połączyłeś się z telefonem alarmowym? Jeśli TAK, to przejdź do K06 Jeśli NIE, to przejdź do K07 K06: Wezwij pomoc K07: Odłóż słuchawkę
wykonuj instrukcję A dokładnie n razy Pętla Wielokrotne powtarzanie niektórych instrukcji jest cechą charakterystyczną wielu algorytmów, nie zawsze jednak możemy określić dokładnie liczbę powtórzeń. Liczba powtórzeń może zależeć od spełnienia pewnych warunków. Wielokrotne powtarzanie instrukcji umożliwiają instrukcje iteracyjne (pętle). Działają one według następującego schematu: wykonuj instrukcję A dokładnie n razy Iteracja to technika algorytmiczna polegająca na wykonaniu tej samej instrukcji dla n zmiennych. Lista kroków – pętla – przykład: K01: Podnieś słuchawkę K02: Wykonaj czynność dwa razy A. Wybierz cyfrę 1 K03: Wybierz cyfrę 2 K04: czy połączyłeś się z telefonem alarmowym? Jeśli TAK, to przejdź do K05 Jeśli NIE, to przejdź do K06 K05: Wezwij pomoc K06: Odłóż słuchawkę
powtarzaj wykonywanie instrukcji A aż do spełnienia warunku W Pętla Powtarzamy wybieranie numeru aż do uzyskania połączenia. Dopiszemy w tym celu polecenie będące drugim rodzajem instrukcji iteracyjnej: powtarzaj wykonywanie instrukcji A aż do spełnienia warunku W Czym jest instrukcja A, czym warunek W ? • Instrukcja A - podniesienie słuchawki, wybranie numeru • Warunek W - uzyskanie połączenia z wybranym numerem Lista kroków – pętla – przykład: K01: Czy słuchawka jest odłożona? Jeśli TAK, to przejdź K02 Jeśli NIE, to odłóż słuchawkę K02: Podnieś słuchawkę K03: Wykonaj czynność dwa razy A. Wybierz cyfrę 1 K04: Wybierz cyfrę 2 K05: czy połączyłeś się z telefonem alarmowym? Jeśli TAK, to przejdź do K06 Jeśli NIE, to przejdź do K07 K06: Wezwij pomoc K07: Odłóż słuchawkę
dopóki warunek W jest spełniony, wykonuj instrukcję A Pętla Jeżeli nadal słychać w słuchawce sygnał zajętości linii, czynność należałoby powtórzyć. Wykonujemy te czynności dopóki linia nie będzie wolna. W takim przypadku stosujemy instrukcję, która działa według schematu: dopóki warunek W jest spełniony, wykonuj instrukcję A Lista kroków – pętla – przykład: K01: Czy słuchawka jest odłożona? Jeśli TAK, to przejdź K02 Jeśli NIE, to odłóż słuchawkę K02: Podnieś słuchawkę K03: Czy linia jest zajęta ? A. Jeśli TAK, to: a. Odłóż słuchawkę b. Podnieś słuchawkę c. Przejdź do kroku K03 B. Jeśli NIE, to przejdź do K04 K04: Wykonaj czynność dwa razy A. Wybierz cyfrę 1 K05: Wybierz cyfrę 2 K06: czy połączyłeś się z telefonem alarmowym? Jeśli TAK, to przejdź do K06 Jeśli NIE, to przejdź do K07 K07: Wezwij pomoc K08: Odłóż słuchawkę
Przykład 1 - prosty schemat blokowy START WPROWADŹ (a, h) WYPROWADŹ (POLE) KONIEC POLE:=1/2 a*h Na schemacie przedstawiony został algorytm liniowy, obliczający powierzchnię trójkąta w reprezentacji krokowej i graficznej. K01: START algorytmu K02: WPROWADŹ a, h K03: Oblicz POLE:=1/2 a*h K04: WYPROWADŹ (POLE) K05: KONIEC algorytmu
OBLICZ DELTĘ:=B*B -4A*C Przykład 2 START WPROWADŹ A, B, C WYPROWADŹ X1,X2 KONIEC OBLICZ X1,X2 Czy A różne od 0 OBLICZ DELTĘ:=B*B -4A*C Czy DELTA>= 0 Poniżej przedstawiony został nieco bardziej skomplikowany schemat blokowy. Ma on za zadanie wyznaczenie miejsc zerowych równania kwadratowego. Dane wejściowe: A, B, C Dane wyjściowe: X1, X2 – miejsca zerowe równania kwadratowego Lista kroków: K01: START algorytmu K02: WPROWADŹ A, B, C K03: jeżeli A różne od zera to oblicz DELTĘ:=B*B - 4AC w przeciwnym wypadku KONIEC algorytmu K04: jeżeli DELTA>=zero to oblicz X1 i X2 w przeciwnym wypadku KONIEC algorytmu K05: WYPROWADŹ X1 , X2 K06: KONIEC algorytmu
Przykład 3 Przykład pokazuje w jaki sposób znaleźć minimum spośród dwóch liczb całkowitych a i b. Program wyprowadza wartość wyniku, w przypadku gdy liczby są sobie równe wyprowadza odpowiedni komunikat. Dane wejściowe: a, b – liczby całkowite Dane wyjściowe: min - minimalna wartość a lub b Lista kroków K01: Wprowadź dwie liczby całkowite a i b: wykonuj K02 K02: Jeśli a<b, to podstaw min=a, wyprowadź wynik min=a. Przejdź do K05: w przeciwnym przypadku przejdź do K03 K03: Sprawdź czy b<a, jeśli TAK to podstaw min=b: wyprowadź wynik min=b. Przejdź do K05: w przeciwnym przypadku przejdź do K04 K04: Podstaw min=a, wyprowadź wynik min=a=b. Przejdź do K05 K05: Koniec
Przykład 3 cd. Po wczytaniu danych wejściowych a i b algorytm rozpocznie porównywanie wczytywanych liczb. Jeśli a>b, to min=a, wynik zostanie wyprowadzony. Jeśli a>=b zostanie sprawdzone czy b>a. Jeśli warunek zostanie spełniony – jeśli TAK, to min=b – wynik zostanie wyprowadzony. Jeżeli kryterium nie zostanie spełniony min=a=b. Wynik sostanie wyświetlony.
Bibliografia Cormen T.H., Leiserson Ch.E., Rivest R.L., Stein C.: „Wprowadzenie do algorytmow”. WNT, Warszawa, 2005 Wroblewski P.: „Algorytmy, struktury danych i techniki programowania, Wydanie III”, Helion, Gliwice, 2003 Donald E. Knuth: Sztuka programowania. T. 1. Warszawa: Wydawnictwo Naukowo-Techniczne, 2002 N. Wirth: „Algorytmy + struktury danych = programy”. WNT, Warszawa, 2004. pl.wikipedia.org/ algorytm.org/ neuralnets.eu/ encyklopedia.pwn.pl/