Необходимо написать программу используя оператор выбора CASE.
Формулировка:
Составить программу, которая по введенной с клавиатуры буквы (P,K,T) будем высчитывать площади прямоугольника, квадрата и треугольника соответственно.
Попробовал решить самостоятельно:
program HW;
uses crt;
VAR
x,y:integer; { длинна и ширина прямоугольника }
a,b:integer; { основание и высота треугольника }
d:integer; { длина стороны квадрата }
rez:real; { результат }
ploshad:real; { площадь }
P:real; { прямоугольник }
K:real; { квадрат }
T:real; { треугольник }
BEGIN
Write ('Если вы желаете вычеслить площадь прямоугольника, введите его длину и ширину, если же нет, оставьте это поле пустым:');
Readln (x,y);
Write ('Если вы желаете вычеслить площадь квадрата, введите длину его стороны, если же нет, оставьте это поле пустым:');
Readln (d);
Write ('Если вы желаете вычеслить площадь треугольника, введите его основание, а затем высоту, если же нет, оставьте это поле пустым:');
Readln (a,b);
Write ('Укажите букву площади которую хотите вычеслить: прямоугольника(P),квадрата(K) или же треугольника(T) - ');
Readln (ploshad);
CASE ploshad OF
P:rez:=x*y;
K:rez:=d*d;
T:rez:=0.5*a*b;
Else write ('Извините, вы ввели не верный символ.');
end;
begin
Writeln ('Результат = ',rez:100:3);
end;
end.
_____________________________________________
Но, при запуске программы в строке "CASE ploshad OF" выдает ошибку, что "Ожидался порядковый или строковый тип". Как исправить?
Answers & Comments