Instrukcja wyboru CASE...OF

Instrukcja CASE znacznie upraszcza programy, w których była konieczność zastosowania kilka razy IF...THEN. CASE umożliwia wybranie z wielu przypadków jegnego, na podstawie odpowiedniej listy zawierającej ich spis. Instrukcja CASE ma postać:


CASE wyrażenia OF
wybór 1;
wybór 2;
.......;
wybór n;

Może wystąpić również nieco inna postać tej instrukcji:

CASE wyrażenia OF
wybór 1;
wybór 2;
.......;
wybór n;
ELSE instrukcja
END;

Przykład zastosowania.

PROGRAM Pola_figur;{Program obliczający pola figur}
Uses Crt;
Var
numer: integer;
a,b,P,h,r:real;
BEGIN
Clrscr;
Writeln('Wybierz pole, której figury chcesz obliczyć');
Writeln;
Writeln('1 - trapez, 2 - trójkąt, 3 - koło, 4 - prostokąt');
Writeln;
Write('Podaj typ figury geometrycznej:');
Readln(numer);
CASE figura OF
1:BEGIN{Trapez}
Writeln;
Writeln('Trapez');
Write('Podaj dł. boku a w cm, a=');
Readln(a);
Write('Podaj dł. boku b w cm, b=');
Readln(b);
Write('Podaj wysokość w cm, h=');
Readln(h);
P:=(0,5*(a+b)*h);
Writeln('Pole trapezu wynosi P=',P:6:2,'cm kw.');
END;
2:BEGIN {Trójkąt}
Writeln;
Writeln('Trójkąt');
Write('Podaj podstawę trójkąta a w cm, a=');
Readln(a);
Write('Podaj wysokość trójkąta h w cm, h=');
Readln(h);
P:=a*h/2;
Writeln('Pole trójkąta wynosi P=',P:6:2,'cm kw.');
END;
3:BEGIN{Koło}
Writeln;
Writeln('Koło');
Write('Podaj promień koła r w cm, r=');
Readln(r);
P:=PI*r*r
Writeln(Pole koła wynosi P=',P:6:2,'cm kw.');
END;
4:BEGIN{Prostokąt}
Writeln;
Writeln('Prostokąt');
Write('Podaj dł. boku a w cm, a=');
Readln(a);
Write('Podaj dł. boku b w cm, b=');
Readln(b);
P:=a*b;
Writeln('Pole prostokąta wynosi P=',P:6:2,'cm kw.');
END;
ELSE
Writeln('Błąd w danych !');
END;
Readkey;
END.

Główna