Przeczytaj
Algorytm rozgałęziony
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łęzionegoalgorytmu 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:
![Ilustracja przedstawia schemat blokowy: 1: zielony owal "START", 2: fioletowy równoległobok "Wczytaj a, b", 3: ciemnofioletowy romb "a > b", jeśli prawda: 4: fioletowy równoległobok "Wypisz a", jeśli fałsz: 4: fioletowy równoległobok "Wypisz b", 5: czerwony owal "STOP".](https://static.zpe.gov.pl/portal/f/res-minimized/R1JfQIiMPiYon/1617123629/xmJHDWr1GjRmynsK6yFTPaCGIf1fcDj2.png)
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ć:
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:
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żonymialgorytmem z warunkami zagnieżdżonymi. Przykładem takiego algorytmu jest wybranie największej spośród trzech liczb. Oto schemat blokowy tego algorytmu:
![Ilustracja przedstawia schemat blokowy złożony z 2 mniejszych obszarów wewnątrz większego: Główny obszar: 1: zielony owal "START", 2: fioletowy równoległobok "Wczytaj a, b, c", 3: ciemnofioletowy romb "a > b", jeśli blok 3 (a > b) to prawda: Przechodzimy do podsekcji 1: 4: ciemnofioletowy romb "a > c", jeśli blok 4 (a > c) to prawda: 5a: fioletowy równoległobok "Wypisz a", jeśli blok 4 (a > c) to fałsz: 5b: fioletowy równoległobok "Wypisz c", jeśli blok 3 (a > b) to fałsz: 4: ciemnofioletowy romb "b > c", jeśli blok 4 (b > c) to prawda: 5a: fioletowy równoległobok "Wypisz b", jeśli blok 4 (b > c) to fałsz: 5b: fioletowy równoległobok "Wypisz c", Wszystkie bloki z podsekcji prowadzą do 6: czerwony owal "STOP".](https://static.zpe.gov.pl/portal/f/res-minimized/RMK4YIsDvsTSF/1617123629/2IkiuZZ7wiFGnM1jJMopJDNevpGnxPHO.png)
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.
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, w którym zapisano kilka alternatywnych ciągów instrukcji
algorytm, w którym wewnątrz jednej instrukcji warunkowej zostaje zapisana kolejna instrukcja warunkowa