110 Turbo Pascal • Ćwiczenia praktyczne
else
if Zmienna-wartosc2 then dzialanie2 else
if Zmienna-wartosc3 then dzialanie3 else
dzialanie4;
Nie było to bardzo wygodne. Na szczęście w Pascalu mamy do dyspozycji instrukcję wyboru, która pozwala na dużo łatwiejsze zaprogramowanie takiego działania. Pozwala ona na rozgałęzienie działania programu w zależności od wartości wyrażenia typu porządkowego. Oto postać tej instrukcji:
case Wyrażenie of
wartości : { blok instrukcji }; wartosc2 : { blok instrukcji };
wartoscN : { blok instrukcji }; else
{ blok instrukcji }
end;
Wartości od 1 do N (zwane stałymi wyboru) muszą mieć z góry określoną wartość (nie mogą być wyrażeniami zawierającymi zmienne). Można także zdefiniować wspólne działanie dla kilku wartości (oddzielając je przecinkami) lub dla pewnego zakresu wartości (wtedy jego granice oddzielić należy dwoma kropkami). Prawidłowy jest więc zapis:
case Upcase(Znak) of:
'K' : KoniecDziałania;
'M' : Menu:
'W' : Wydruk;
’H', 'P’ : Pomoc;
'X'.. 'Z' : ZmianaWspolrzednej (Znak); else
wrtiteln ('Niewłaściwy znak') end;
W trakcie wykonywania instrukcji wyboru wykonywany jest tylko jeden blok instrukcji. Jest to pierwszy napotkany, dla którego zdefiniowana stała wyboru (lub jedna z nich, jeżeli zdefiniowaliśmy kilka lub przedział) spełnia wyrażenie Wyrazenie=Wartosc, bądź blok instrukcji po else, jeżeli żadna stała wyboru nie spełniała wyrażenia. Należy dbać, by w definicji poszczególnych stałych wyboru wartości nie powtarzały się. Mogłoby to spowodować trudne do odnalezienia błędy w działaniu programu.
Instrukcja else jest opcjonalna — można, ale nie trzeba jej używać.
ĆWICZENIE
4.20
Wykorzystamy instrukcję wyboru, która na podstawie liczby wprowadzonej przez użytkownika pod zmienną NazwaMiesiaca podstawi odpowiednią wartość. Wykorzystamy instrukcję else, by sprawdzić, czy podana wartość nie leży poza zakresem 1.. 12.
program cw4_20;
{ Program wypisuje nazwę miesiąca o numerze podanym przez }
{ użytkownika. }
{ Katalog r4_04 : 4_20.pas }