Подручја рада
Претрага
20. Наредба вишеструког гранања

Уводни део часа :
1. Које су одлике разгранатих линијских структура?
2. Који су недостаци коришћења једноструких и двоструких наредби гранања ?
-------------------------------------------------------------------------------------------------------------------
Главни део часа :

Када је потребно направити вишеструки избор, односно када је потребно изабрати између више наредби једну наредбу може се користити више if наредби. Међутим, ако постоји израз чија вредност одређује која ће се наредба извршити, лакше је употребити case наредбу.
Синтаксни дијаграм ове наредбе је приказан на слици :

Case_dijagram.jpg

Дијаграм тока извршавања case наредбе приказан је на слици :

Case_algoritam.jpg

Израз чија вредност одређује која ће се наредба извршити назива се селектор. Вредност селектора може бити било који стандардни тип, осим реалног. Тип константе и тип селектора морају бити исти.

Case наредба извршава се на следећи начин :
1. израчунава се вредност израза;
2. извршава се наредба чија је ознака једнака вредности израза.

Пример 1: Написати case наредбу којом се на основу редног броја дана исписује његово име.

case brojdana of
        0 : writeln('NEDELJA');
        1 : writeln('PONEDELJAK');
        2 :writeln('UTORAK');
        3 : writeln('SREDA');
        4 : writeln('CETVRTAK');
        5 : writeln('PETAK');
        6 : writeln('SUBOTA')
end;

Ако је вредност променљиве brojdana=3, извршиће се наредба са обележјем 3, односно на екрану ће писати : SREDA.

Пример 2 : Написати case наредбу којом се на основу задатог слова исписује да ли се ради о самогласнику или сугласнику.

case slovo of
        'a','e','i','o','u' : writeln('SAMOGLASNIK')
        else writeln('SUGLASNIK')
end;

У претходном примеру се могу уочити следеће важне карактеристике case наредбе :
1. једна наредба може имати више различитих ознака;
2. коришћењем else обележја case наредба постаје дефинисана за све вредности селектора,
чиме се избегава појава грешке. Поред тога, употребом else обележја избегава се навођење
свих обележја, чиме се скраћује запис.

Одговорити на питања :
1. Нацртати синтаксни дијаграм case наредбе.
2. Нацртати дијаграм тока case наредбе.
3. Како се извршава case наредба ?
4. Које су важне одлике case наредбе ?
5. Написати case наредбу којом се на основу имена боје исписује природа боје ( неутрална, топла, хладна ).