USES Crt; LABEL M1,M2; VAR X:INTEGER; A,H,S,B,L,C,P:REAL; BEGIN M1:ClrScr; WriteLn('Вычисление площади треугольника'); WriteLn; WriteLn('1.По основанию и высоте'); WriteLn('2.По трем сторонам'); WriteLn('3.По двум сторонам и углу между ними');
WriteLn('4.Выход');
WriteLn;
WriteLn('Введите номер пункта'); ReadLn(X);
CASE X OF
1: Begin
ClrScr;
Write('Введите основание и высоту треугольника '); ReadLn(A,H);
S:=A*H/2;
WriteLn('Площадь треугольника = ',S:5:2); ReadLn;
GOTO M1;
End;
2: Begin
ClrScr;
Write('Введите значения сторон треугольника ');
ReadLn(A,B,C);
P:=(A+B+C)/2;
S:=Sqrt(P*(P-A)*(P-B)*(P-C));
WriteLn('Площадь треугольника = ',S:5:2); ReadLn;
GOTO M1
End;
3: Begin
ClrScr;
Write('Введите значения двух сторон и угол между ними ');
ReadLn(A,B,L);
S:=A*B*Sin(L*Pi/180)/2;
WriteLn('Площадь треугольника = ',S:5:2); ReadLn;
GoTo M1;
End;
4: Begin
ClrScr;
WriteLn('Программа закончила свою работу'); ReadLn;
GoTo M2;
End;
ELSE
ClrScr;
WriteLn('Номер пункта ввели неверно'); ReadLn;
GoTo M1;
End;
M2:END.