Вопрос: Пусть элементами равностороннего треугольника являются: 1) сторона а; 2) площадь S; 3) высота h; 4) радиус вписанной окружности R; 5) радиус описанной окружности R. Составить программу, которая по заданному номеру и значению соответствующего элемента вычисляла бы значение всех остальных элементов треугольника.
Категория: школьный раздел
Ответы:
uses crt;
var a,h,s,rv,ro:real;
    w:char;
begin
repeat
clrscr;
writeln('Укажите номер известного элемента');
writeln('1 - сторона');
writeln('2 - высота');
writeln('3 - площадь');
writeln('4 - радиус вписанной окружности');
writeln('5 - радиус описанной окружности');
writeln('Другое - выход');
readln(w);
case w of
'1':begin
    repeat
    write(':Введите длину стороны a>0 a=');
    readln(a);
    until a>0;
    h:=sqrt(3)*a/2;
    s:=sqrt(3)*sqr(a)/4;
    rv:=sqrt(3)*a/6;
    ro:=2*rv;
    end;
'2':begin
    repeat
    write('Введите высоту h>0 h=');
    readln(h);
    until h>0;
    a:=2*h/sqrt(3);
    s:=sqrt(3)*sqr(a)/4;
    rv:=sqrt(3)*a/6;
    ro:=2*rv;
    end;
'3':begin
    repeat
    write('Введите площадь s>0 s=');
    readln(s);
    until s>0;
    a:=sqrt(4*s/sqrt(3));
    h:=sqrt(3)*a/2;
    rv:=sqrt(3)*a/6;
    ro:=2*rv;
    end;
'4':begin
    repeat
    write('Введите радиус вписанной окружности rv>0 rv=');
    readln(rv);
    until rv>0;
    a:=6*rv/sqrt(3);
    h:=sqrt(3)*a/2;
    s:=sqrt(3)*sqr(a)/4;
    ro:=2*rv;
    end;
'5':begin
    repeat
    write('Введите радиус описанной окружности ro>0 ro=');
    readln(ro);
    until ro>0;
    a:=3*ro/sqrt(3);
    h:=sqrt(3)*a/2;
    s:=sqrt(3)*sqr(a)/4;
    rv:=sqrt(3)*a/6;
    end;
end;
clrscr;
writeln('Сторона=',a:0:2);
writeln('Высота=',h:0:2);
writeln('Площадь=',s:0:2);
writeln('Радиус вписанной окружности=',rv:0:2);
writeln('Радиус описанной окружности=',ro:0:2);
writeln('Нажмите Enter');
readln;
until not(w in ['1'..'5'])
end.

program n_16;
var a, a1, a2, a3, a4, i, S, h, rv, Ro: real;
begin
  writeln ('Введите значения стороны равностороннего треугольника');
  readln (a);
  Writeln ('Выберите формулу для выведения сторон от 1 до 5');
  readln (i);
  h:=(sqrt(a*a-(a*a/4))); {Формула высоты в правильном треугольнике}
  a1:=(2*h/(sqrt(3))); {Формула нахождения стороны через высоту}
  S:=((a*h)/2); {Площадь правильного треугольника через высоту}
  a2:=((2*S)/h); {Нахождение стороны через площадь}
  rv:=(a/(2*(sqrt(3)))); {Радиус вписанной окружности правильного треугольника}
  a3:=(rv*2*(sqrt(3))); {Нахождение стороны через радиус вписанной окружности}
  Ro:=(a/sqrt(3)); {Радиус описанной окружности}
  a4:=(Ro*sqrt(3)); {Нахождение стороны через радиус описанной окружности}
  
   
  if i = 1 then Write (a, ', ', a, ' Две другие стороны') else 
    if i=2 then Write (a1,', ', a1, ' Две другие стороны') else
      if i=3 then Write (a2,', ', a2, ' Две другие стороны') else
        if i=4 then Write (a3,', ', a3, ' Две другие стороны') else
          if i=5 then Write (a4,', ', a4, ' Две другие стороны') else
            writeln ('Неподходящее значение'); 
end.

from math import sqrt
a = float(input('Введите длину стороны a: '))
r = sqrt(3) * a / 6
rr = 2 * r
h = 3 * r
s = a * h / 2
print('Радиус вписанной окружности ', round(r,2))
print ('Радиус описанной окружности ', round(rr,2))
print ('Высота треугольника ', round(h,2))
print ('Площадь треугольника ', round(h,2))