Algorytm rozgałęziony

Już wiesz

Algorytm rozgałęziony zawiera:

  • instrukcje warunkowe,

  • polecenia, które są wykonywane w zależności od spełnienia bądź niespełnienia określonego warunku,

  • kilka alternatywnych ciągów instrukcji,

  • bloki warunkowe mające postać rombu z dwoma wyjściami.

Opracujmy pseudokod prostego algorytmu rozgałęzionegoalgorytm rozgałęzionyalgorytmu rozgałęzionego, który jest wykorzystywany do wybrania większej spośród dwóch liczb wprowadzonych przez użytkownika. Oto schemat blokowy takiego algorytmu:

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

Pierwszym elementem schematu jest blok startowy. Następnie wczytujemy dwie liczby podane przez użytkownika: a oraz b. Operacji tej odpowiada blok wejściowy mający kształt równoległoboku. Później pojawia się blok warunkowy w postaci rombu z dwoma wyjściami; zapisano w nim polecenie sprawdzenia, czy liczba a jest większa od liczby b. Jeżeli tak jest, na ekranie zostaje wypisana liczba a. W przeciwnym przypadku jest wyświetlana liczba b. Nie bierzemy pod uwagę sytuacji, w której liczby są sobie równe – nie ma wówczas znaczenia, którą z nich wypiszemy (w przypadku zastosowania pokazanego algorytmu będzie to liczba b).

Zapisany na schemacie warunek nie jest jedynym rozwiązaniem. W bloku warunkowym można podać inne wyrażenia:

  • b > a,

  • b >= a,

  • a >= b.

Musimy jednak pamiętać, że instrukcje zależne od spełnienia bądź niespełnienia warunku będą w dwóch pierwszych przypadkach inne niż te, które znalazły się w schemacie zawierającym wyrażenie a > b.

Na podstawie opracowanego schematu blokowego możemy zapisać pseudokod algorytmu. Instrukcja warunkowa będzie mieć następującą postać:

Linia 1. jeżeli warunek. Linia 2. instrukcja1. Linia 3. w przeciwnym wypadku. Linia 4. instrukcja2.

Na początku jest sprawdzany warunek, który pojawia się po słowie jeżeli. W przypadku, gdy został on spełniony, są wykonywane instrukcje zapisane bezpośrednio po nim (w przykładzie jest to instrukcja1). Jeżeli warunek nie został spełniony, są wykonywane instrukcje zapisane po wyrażeniu w przeciwnym wypadku (w przykładzie będzie to instrukcja2).

Zapisany w postaci pseudokodu algorytm używany do wybrania większej spośród dwóch liczb będzie zatem wyglądał następująco:

Linia 1. wczytaj a przecinek b. Linia 2. jeżeli a zamknij nawias ostrokątny b. Linia 3. wypisz a. Linia 4. w przeciwnym wypadku. Linia 5. wypisz b.

Algorytm z warunkami zagnieżdżonymi

Do rozwiązania niektórych problemów nie wystarczy sprawdzenie tylko jednego warunku (i wybranie jednego z dwóch ciągów instrukcji). W przypadku gdy po sprawdzeniu jednego warunku musimy sprawdzić kolejny, mamy do czynienia z algorytmem z warunkami zagnieżdżonymialgorytm z warunkami zagnieżdżonymialgorytmem z warunkami zagnieżdżonymi. Przykładem takiego algorytmu jest wybranie największej spośród trzech liczb. Oto schemat blokowy tego algorytmu:

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

W pierwszym bloku warunkowym zapisano polecenie sprawdzenia, czy liczba a jest większa od liczby b. W rezultacie zostanie wskazana większa liczba. Ścieżka z lewej strony, oznaczona słowem „prawda”, prowadzi do zestawu instrukcji wykonywanych w sytuacji, w której a jest liczbą większą. Z prawej strony bloku warunkowego zaznaczono przejście do instrukcji wykonywanych w przypadku, gdy większą liczbą jest b.

Gdy wybierzemy większą z dwóch liczb, możemy sprawdzić, czy jest ona większa od trzeciej liczby – c. Operacja ta została przedstawiona za pomocą dwóch bloków, reprezentujących zagnieżdżone wyrażenia warunkowe.

Jeżeli okaże się, że liczba wskazana po sprawdzeniu pierwszego warunku jest większa niż c, jako wynik podajemy a lub b. W przeciwnym przypadku wypisujemy liczbę c.

Przeanalizujmy pseudokod tego algorytmu.

Linia 1. wczytaj a przecinek b przecinek c. Linia 2. jeżeli a zamknij nawias ostrokątny b. Linia 3. jeżeli a zamknij nawias ostrokątny c. Linia 4. wypisz a. Linia 5. w przeciwnym wypadku. Linia 6. wypisz c. Linia 7. w przeciwnym wypadku. Linia 8. jeżeli b zamknij nawias ostrokątny c. Linia 9. wypisz b. Linia 10. w przeciwnym wypadku. Linia 11. wypisz c.

Wewnątrz jednej instrukcji warunkowej jest umieszczona kolejna instrukcja, nazywana warunkiem zagnieżdżonym. W przypadku gdy warunek a > b został spełniony, jest sprawdzany warunek a > c, natomiast w przeciwnym razie jest sprawdzany warunek b > c. Każdy ciąg instrukcji wymaga sprawdzenia dwóch warunków. Istnieją cztery drogi prowadzące do rozwiązania problemu.

Słownik

algorytm rozgałęziony
algorytm rozgałęziony

algorytm, w którym zapisano kilka alternatywnych ciągów instrukcji

algorytm z warunkami zagnieżdżonymi
algorytm z warunkami zagnieżdżonymi

algorytm, w którym wewnątrz jednej instrukcji warunkowej zostaje zapisana kolejna instrukcja warunkowa