Różne typy algorytmów

Utrwalmy podstawowe informacje na temat algorytmów liniowych i rozgałęzionych.

Już wiesz

Algorytm liniowy:

  • występuje jeden możliwy ciąg instrukcji,

  • czynności wykonywane są jedna po drugiej,

  • nie zawiera instrukcji warunkowych.

Algorytm rozgałęziony:

  • algorytm z warunkami,

  • kolejna instrukcja w algorytmie może zależeć od spełnienia bądź niespełnienia określonego warunku,

  • istnieje kilka alternatywnych ciągów instrukcji,

  • schemat blokowy algorytmu tego typu zawiera bloki warunkowe w postaci rombu z dwoma wyjściami.

Wspomnieliśmy o prostym algorytmie słodzenia herbaty. Przypomnijmy sobie jego budowę przedstawioną za pomocą schematu blokowego.

R1O7DetiiPUaq
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Ten sam ciąg instrukcji powtarzany jest kilkakrotnie. Wielokrotne powtarzanie tych samych czynności nazywamy iteracjąiteracjaiteracją.

Problem słodzenia herbaty jest mało skomplikowany, zastosowanie iteracji nie wpływa znacząco na jego czytelność. Może natomiast skrócić zapis (tak w przypadku pseudokodu, schematu blokowego, jak i języków programowania).

Już wiesz

W algorytmie iteracyjnym wykorzystujemy bloki warunkowe występujące w algorytmach rozgałęzionych. Kolejna instrukcja zależy od spełnienia bądź niespełnienia określonego warunku. Oprócz warunku, w pewnym momencie wykonywania algorytmu nastąpi powrót do jednej z wcześniejszych instrukcji. Taki powrót nazywamy pętląpętlapętlą.

Schemat blokowy algorytmu iteracyjnego

R3i7txAlacLco
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

W pierwszym bloku operacyjnym zainicjowana zostaje wartość początkowa iterowanej zmiennej (np. posłodzenie herbaty pierwszą łyżeczką cukru). Dzięki temu możemy zliczać liczbę iteracji. Następnie sprawdzany jest warunek. Jeżeli jest on fałszywy, wychodzimy z pętli i nie powtarzamy więcej operacji w niej zawartych. Natomiast jeżeli warunek będzie spełniony, wykonujemy ciąg odpowiednich instrukcji. Po wykonaniu ciągu instrukcji wracamy do sprawdzenia warunku. Jeżeli jest spełniony, ponownie wykonujemy te same instrukcje itd.

Polecenie 1

Przeanalizuj schemat blokowy algorytmu słodzenia herbaty wykorzystujący pętlę.

Rq3wa9098y99s
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Algorytm iteracyjny wypisujący liczby z podanego przedziału

Za pomocą pseudokodu zapiszemy algorytm iteracyjnyalgorytm iteracyjnyalgorytm iteracyjny wyświetlający na ekranie liczby całkowite z zakresu 10, 25.

Pseudokod algorytmu iteracyjnego możemy zrealizować za pomocą instrukcji iteracyjnych. Pętlę utworzymy z wykorzystaniem słów dopóki .. wykonuj. Jeżeli wyrażenie zawarte między dopókiwykonuj będzie prawdziwe, będą wykonywane instrukcje wymienione bezpośrednio pod nimi. Instrukcje te zapiszemy z użyciem wcięcia. Ma to na celu wskazanie, które instrukcje znajdują się w pętli.

Linia 1. dopóki wyrażenie wykonuj dwukropek. Linia 2. instrukcja1. Linia 3. instrukcja2.

Zapiszmy w postaci pseudokodu algorytm wyświetlający na ekranie liczby całkowite z zakresu 10, 25.

Linia 1. i dwukropek znak równości 10. Linia 2. dopóki i otwórz nawias ostrokątny znak równości 25 wykonuj dwukropek. Linia 3. wypisz i. Linia 4. i dwukropek znak równości i plus 1.

W pierwszym wierszu pseudokodu inicjujemy wartość początkową i := . To będzie pierwsza liczba wypisana przez algorytm. Następnie tworzymy pętlę, w której sprawdzane jest to, czy i jest mniejsze lub równe . Jeżeli warunek jest spełniony, wypisujemy wartość i, a następnie zwiększamy ją o , w celu wypisania kolejnej liczby całkowitej. Instrukcje będą wykonywane, dopóki i nie przekroczy wartości .

Słownik

algorytm iteracyjny
algorytm iteracyjny

algorytm, w którym wykorzystywane są pętle w celu kilkakrotnego powtórzenia ciągu poleceń

iteracja
iteracja

wielokrotne wykonywanie tych samych czynności

pętla
pętla

instrukcja iteracyjna, która umożliwia cykliczne wykonywanie ciągu instrukcji