Консультация № 136863
14.05.2008, 22:33
0.00 руб.
0 2 2
Пусть элементами равностороннего треугольника являются: сторона а; площадь S; высота h; радиус вписанной окружности r; радиус описанной окружности R. Составить программу, которая по заданному номеру и значению соответствующего элемента вычисляла бы значение всех остальных элементов треугольника.

Обсуждение

Неизвестный
15.05.2008, 08:58
общий
это ответ
Здравствуйте, Raevil!
Программа в приложении, если будут вопросы касательно программы и используемых формул, обращайтесь

Приложение:
program p136863;var a,s,h,r,RR:real; c:char;BEGINwriteln(‘Что известно?‘);writeln(‘1 - сторона‘);writeln(‘2 - площадь‘);writeln(‘3 - высота‘);writeln(‘4 - радиус вписанной окружности‘);writeln(‘5 - радиус описанной окружности‘);readln(c);case c of‘1‘:begin writeln(‘Введите сторону‘); readln(a); s:=a*a*sqrt(3)/4; h:=2*s/a; r:=0.5*a/sqrt(3); RR:=a/sqrt(3); end;‘2‘:begin writeln(‘Введите площадь‘); readln(s); a:=sqrt(4*S/sqrt(3)); h:=2*S/a; r:=0.5*a/sqrt(3); RR:=a/sqrt(3); end;‘3‘:begin writeln(‘Введите высоту‘); readln(h); a:=sqrt(4*h*h/3); s:=a*a*sqrt(3)/4; r:=0.5*a/sqrt(3); RR:=a/sqrt(3); end;‘4‘:begin writeln(‘Введите радиус вписанной окружности‘); readln(r); a:=2*r*sqrt(3); s:=a*a*sqrt(3)/4; h:=2*s/a; RR:=a/sqrt(3); end;‘5‘:begin writeln(‘Введите радиус описанной окружности‘); readln(RR); a:=RR*sqrt(3); s:=a*a*sqrt(3)/4; h:=2*s/a; r:=0.5*a/sqrt(3); end;end;writeln(‘Сторона - ‘,a:0:2);writeln(‘Площадь - ‘,s:0:2);writeln(‘Высота - ‘,h:0:2);writeln(‘Радиус вписанной окружности - ‘,r:0:2);writeln(‘Радиус описанной окружности - ‘,RR:0:2);end.
Неизвестный
15.05.2008, 09:15
общий
это ответ
Здравствуйте, Raevil!

В справочнике по математике нашёл следующие формулы для равностороннего треугольника:
1) площадь <b>S = Sqrt(3) * a^2 / 4</b>;
2) высота <b>h = Sqrt(3) * a / 2</b>;
3) радиус вписанной окружности <b>R = a * Sqrt(3) / 6</b>;
4) радиус описанной окружности <b>R = a * Sqrt(3) / 3</b>.

Из этих формул легко вывести обратные, посчитав основной параметр треугольника - длину его стороны. А далее по длине стороны узнаём все остальные параметры.

Приложение:
Program Pr136863; Uses CRT; Var a, x, Sqrt3: Real; ch: Char; Begin ClrScr; { Вычисляем квадратный корень от 3 для дальнейшего использования } Sqrt3 := Sqrt(3); WriteLn(‘Выберите вводный параметр:‘); WriteLn(‘1) сторона треугольника a;‘); WriteLn(‘2) его площадь S;‘); WriteLn(‘3) высота h;‘); WriteLn(‘4) радиус вписанной окружности Rin;‘); WriteLn(‘5) радиус описанной окружности Rout.‘); Write(‘Нажмите клавишу от 1 до 5: ‘); { Ждём ввода цифры от 1 до 5, игнорируя всё остальное } Repeat ch := ReadKey; Until ch in [‘1‘..‘5‘]; WriteLn(ch); WriteLn; case ch of ‘1‘: begin Write(‘Сторона a = ‘); ReadLn(a); end; ‘2‘: begin Write(‘Площадь S = ‘); ReadLn(x); a := Sqrt(4 * x / Sqrt3); end; ‘3‘: begin Write(‘Высота h = ‘); ReadLn(x); a := 2 * x / Sqrt3; end; ‘4‘: begin Write(‘Радиус вписанной окружности Rin = ‘); ReadLn(x); a := 2 * Sqrt3 * x; end; ‘5‘: begin Write(‘Радиус описанной окружности Rout = ‘); ReadLn(x); a := Sqrt3 * x; end; end; WriteLn; WriteLn(‘Параметры треугольника:‘); WriteLn(‘Сторона a = ‘, a:10:6); WriteLn(‘Его площадь S = ‘, (Sqrt3 * a * a / 4):10:6); WriteLn(‘Высота h = ‘, (sqrt3 * a / 2):10:6); WriteLn(‘Радиус вписанной окр. Rin = ‘, (a * Sqrt3 / 6):10:6); WriteLn(‘Радиус описанной окр. Rout = ‘, (a * Sqrt3 / 3):10:6); ReadLn; End.
Форма ответа