Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом:
1 — катет a, 2 — гипотенуза c = a*sqrt(2), 3 — высота h, опущенная на гипотенузу (h = c/2), 4 — площадь S = c*h/2.
Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке)
Program Case13;
Var
Cnt: Byte;
_Val, c, a: Real;
Begin
WriteLn('1 — катет, 2 — гипотенуза, 3 — высота, опущенная на гипотенузу, 4 — площадь:');
ReadLn(Cnt);
WriteLn('Введите значение элементa: ');
ReadLn(_Val);
Case Cnt Of
1:
Begin
a := _Val;
c := a * sqrt(2);
WriteLn('Катет: ', a);
WriteLn('Гипотенуза: ', c);
WriteLn('Высота: ', c / 2);
WriteLn('Площадь: ', c * (c / 2) / 2);
End;
2:
Begin
a := _Val / sqrt(2);
c := _Val;
WriteLn('Катет: ', a);
WriteLn('Гипотенуза: ', c);
WriteLn('Высота: ', c / 2);
WriteLn('Площадь: ', c * (c / 2) / 2);
End;
3:
Begin
a := _Val / (sqrt(2) / 2);;
c := a * sqrt(2);
WriteLn('Катет: ', a);
WriteLn('Гипотенуза: ', c);
WriteLn('Высота: ', c / 2);
WriteLn('Площадь: ', c * (c / 2) / 2);
End;
4:
Begin
a := sqrt(2 * _Val);
{ <-- это получается после нехитрых тупых преобразований }
c := a * sqrt(2);
WriteLn('Катет: ', a);
WriteLn('Гипотенуза: ', c);
WriteLn('Высота: ', c / 2);
WriteLn('Площадь: ', c * (c / 2) / 2);
End;
End;
End.