Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке) — Pascal(Паскаль)

Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом:
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.

Leave a Comment

+ 4 = 13