CASE - instrukcja wyboru
Instrukcja CASE jest wykorzystywana gdy wykonanie różnych części programu jest uzależnione od stanu pewnej zmiennej Jej ogólna postać wygląda następująco:
Składnia |
|
Tłumaczenie |
CASE wyrażenie OF
sekwencja instrukcji wyboru;
ELSE
Instrukcja; END; |
|
WYBIERZ wyrażenie Z
sekwencja instrukcji wyboru;
JEŻELI NIE MA
Instrukcja;
END; |
Wartość wyrażenia musi być typu porządkowego. Sekwencja instrukcji wyboru składa się z instrukcji, przy czym poprzedzone one są stałymi oddzielonymi od nich dwukropkiem. Instrukcja CASE oblicza wartość wyrażenia następnie wyszukiwana jest instrukcja z sekwencji instrukcji wyboru , pierwsza poprzedzona stałą obliczoną na podstawie wyrażenia jest wykonywana. Po wykonaniu instrukcji sterowanie jest przekazywane do instrukcji występującej po słowie end . W przypadku gdy żadna stała wyboru nie odpowiada wartości obliczonej, wykonywana jest instrukcja występująca po else.
Program podający nazwę miesiąca po podaniu jego numeru w roku.
Program Miesiac;
var
m:INTEGER; {numer miesiąca w roku}
Begin
Write ('Podaj numer miesiąca w roku: ');
Readln (m);
CASE m OF
1: Writeln ('Styczeń');
2: Writeln ('Luty');
3: Writeln ('Marzec');
4: Writeln ('Kwiecień');
5: Writeln ('Maj');
6: Writeln ('Czerwiec');
7: Writeln ('Lipiec');
8: Writeln ('Sierpień');
9: Writeln ('Wrzesień');
10: Writeln ('Październik');
11: Writeln ('Listopad');
12: Writeln ('Grudzień')
ELSE Writeln ('Numer nie poprawny')
End;
End.
Program który wypisuje słownie oceny i odpowiednie komentarze po wpisaniu ich w postaci liczbowej.
Program instca1;
uses crt;
var ocenaliczbowa:integer;
ocenaslowna:string;
begin
clrscr;
writeln('Podaj ocene liczbowa');
readln(ocenaliczbowa);
case ocenaliczbowa of
1: begin
ocenaslowna:='niedostatecznie';
writeln('Otrzymales ocene ',ocenaslowna,' niestety ale nie jestes promowany');
end;
2: begin
ocenaslowna:='dopuszczalna';
writeln('Otrzymales ocene ',ocenaslowna,' musisz sie poprawic');
end;
3: begin
ocenaslowna:='dostateczna';
writeln('Otrzymales ocene ',ocenaslowna);
end;
4: begin
ocenaslowna:='dobry';
writeln('Otrzymales ocene ',ocenaslowna);
end;
5: begin
ocenaslowna:='bardzo dobry';
writeln('Otrzymales ocene ',ocenaslowna,' Brawo!! nalezy Ci sie nagroda');
end;
6: begin
ocenaslowna:='celujaca';
writeln('Otrzymales ocene ',ocenaslowna,' Gratuluje jestes z tej dziedziny ekspertem');
end;
else
Writeln('podales niewlasciwa liczbe');
end;
readkey;
end.
Program do obliczania pola kwadratu, trójkąta lub trapezu.
Pole kwadratu - P = a2
Pole trójkąta - P =
Pole trapezu - P =
Program instca1;
uses crt;
var figura:integer;
zmienna1,zmienna2,zmienna3,pole:real;
begin
clrscr;
writeln('Podaj rodzaj figury geometrycznej');
writeln('1 - kwadrat, 2 - trojkat, 3 - trapez');
readln(figura);
case figura of
1:begin
writeln('Podaj bok kwaratu');
readln(zmienna1);
pole:=zmienna1*zmienna1;
writeln('Pole kwadratu wynosi - ',pole);
end;
2:begin
writeln('Podaj podstawe trojkata i wysokosc');
readln(zmienna1,zmienna2);
pole:=(zmienna1*zmienna2)/2;
writeln('Pole trojkata wynosi - ',pole);
end;
3:begin
writeln('Podaj podaj obydwie podstawy i wysokosc trapezu');
readln(zmienna1,zmienna2,zmienna3);
pole:=((zmienna1+zmienna2)/2)*zmienna3;
writeln('Pole trapezu wynosi - ',pole);
end
else
Writeln('Podales niewlasciwa liczbe');
end;
readkey;
end.