1.5. Instrukcja warunkowa - algorytmy rozgałęzione Do tej pory

Transkrypt

1.5. Instrukcja warunkowa - algorytmy rozgałęzione Do tej pory
1.5. Instrukcja warunkowa - algorytmy rozgałęzione
Do tej pory mówiliśmy o algorytmach, w których sposób wykonania kolejnych
instrukcji nie zależał od otrzymywanych wyników ani danych wejściowych. Poznasz teraz
instrukcję, która pozwala uzależnić dalszą drogę postępowania w algorytmie od otrzymanego
wyniku. Jest to instrukcja warunkowa, będąca „rozgałęźnikiem" w algorytmie.
Sformułujmy problem w sposób następujący:
----------------------------------------------------------------------------------------------------------------Przykład
Daną wejściową niech będzie dowolna liczba rzeczywista. Na wyjściu chcemy otrzymać
informację, czy liczba ta jest dodatnia czy nie.
----------------------------------------------------------------------------------------------------------------Zapiszmy algorytm rozwiązujący to zadanie za pomocą listy kroków:
1. Wczytaj x.
2. Jeśli x > 0, to wypisz: „x jest liczbą dodatnią" i zakończ.
3. Jeśli x≤0, to wypisz: „x nie jest liczbą dodatnią" i zakończ.
Możemy ten zapis zredukować do dwóch kroków, przy czym obie listy kroków będą
poprawne:
7.
Wczytaj x.
2.
Jeśli x > 0, to wypisz: „x jest liczbą dodatnią”, w przeciwnym wypadku
wypisz: „x nie jest liczbą dodatnią" i zakończ.
Wykonanie instrukcji jest zatem uzależnione od tego, czy zajdzie badany warunek (tu
warunek x > 0). Pamiętasz z matematyki, że zaprzeczaniem warunku x > 0 jest warunek x ≤0.
Definicja
Instrukcja warunkowa to taka instrukcja, która w zależności od wartości
warunku logicznego W umieszczonego w tej instrukcji umożliwia wykonywanie lub nie
innych instrukcji - tak zwanych instrukcji wewnętrznych A i B.
Instrukcję tę będziemy zapisywać w algorytmach następująco: Jeśli spełniony
jest warunek W, to wykonaj instrukcję A; lub: Jeśli spełniony jest warunek W, to
wykonaj instrukcję A, w przeciwnym wypadku wykonaj instrukcję B.
Zauważ, że pierwszy rodzaj instrukcji warunkowej jest realizacją drugiego zapisu w
wypadku, gdy instrukcja B jest instrukcją pustą, czyli taką, która nie wykonuje żadnej
konkretnej czynności.
Warunek w instrukcji warunkowej może być warunkiem prostym (jak w powyższym
przykładzie) lub warunkiem złożonym, będącym koniunkcją lub alternatywą kilku innych
warunków.
Definicja
Algorytm, w którym występują instrukcje warunkowe, nazywa się algorytmem
rozgałęzionym.
----------------------------------------------------------------------------------------------------------------Przykład
Napiszmy schemat blokowy algorytmu podejmowania decyzji, czy pobrana liczba jest
dodatnia.
----------------------------------------------------------------------------------------------------------------
Schemat blokowy tego algorytmu może wyglądać tak jak na rycinie 1.2:
Ryc. 1.2. Schemat blokowy algorytmu sprawdzającego, czy liczba jest dodatnia.
Zauważ, że w schemacie pojawił się blok decyzyjny. Przy realizacji algorytmu wybór
ścieżki TAK lub NIE zależy od prawdziwości warunku umieszczonego w tym bloku.
Warunek musi być tak określony, aby ocena jego prawdziwości była jednoznaczna.
Modyfikacja algorytmu pozwoli nam otrzymać odpowiedź nie tylko na pytanie, czy
liczba jest dodatnia czy nie, ale uzyskamy również informację o wartości zerowej, jeśli taka
została pobrana (ryc. 1.3):
Ryc. 1.3. Schemat blokowy algorytmu badającego znak podanej liczby
Mamy tu już do czynienia z pełną wersją algorytmu określającego znak pobranej
liczby, ponieważ przewidziany został przypadek, że liczba jest zerem. Zwróć uwagę, że
kolejność podejmowanych decyzji lub określenie badanych warunków można zmienić. Na
przykład: już w pierwszym bloku pytamy o to, czy liczba jest zerem, i łączymy z blokiem
wyjściowym wyprowadzającym napis: „liczba jest zerem" w wypadku prawdziwości
warunku. W kolejnym bloku decyzyjnym pytamy, czy jest większa od zera - tu w zależności
od odpowiedzi łączymy ją z blokami wyjścia odpowiednio wyprowadzającymi napisy:
„liczba jest dodatnia", „liczba jest ujemna".
Spróbuj zapisać rozwiązanie tego zadania za pomocą listy kroków. Możesz
wykorzystać do tego drzewo postępowania zamieszczone na rycinie 1.4:
Ryc. 1.4. Drzewo postępowania ilustrujące schemat czynności przy badaniu znaku liczby

Podobne dokumenty