210 likes | 358 Views
Materiały pochodzą z Platformy Edukacyjnej Portalu www.szkolnictwo.pl.
E N D
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 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 START KONIEC WPROWADŹ WYPROWADŹ
:= CZYL>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ę
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ę
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ę
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 Na schemacie przedstawiony został algorytm liniowy, obliczający powierzchnię trójkątaw reprezentacji krokowej i graficznej. K01: START algorytmu K02: WPROWADŹ a, h K03: Oblicz POLE:=1/2 a*h K04: WYPROWADŹ (POLE) K05: KONIEC algorytmu WPROWADŹ (a, h) POLE:=1/2 a*h WYPROWADŹ(POLE) KONIEC
START Przykład 2 Poniżej przedstawiony został nieco bardziej skomplikowany schemat blokowy. Ma on za zadanie wyznaczenie miejsc zerowych równania kwadratowego. WPROWADŹ A, B, C Dane wejściowe: A, B, C Dane wyjściowe: X1, X2 – miejsca zerowe równania kwadratowego Czy A różne od 0 OBLICZ DELTĘ:=B*B -4A*C 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 X1i X2 w przeciwnym wypadku KONIEC algorytmu K05: WYPROWADŹ X1 , X2 K06: KONIEC algorytmu Czy DELTA>= 0 KONIEC OBLICZ X1,X2 WYPROWADŹ X1,X2 KONIEC
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/