Ввести 3 числа - стороны треугольника (причем третью сторону с проверкой и повторным вводом, если она не удовлетворяет условию). найти высоту, проведенную к большей стороне. решить в паскале! ! !

theonestop1234 theonestop1234    2   07.08.2019 00:30    2

Ответы
6г56г 6г56г  09.08.2020 06:56
Program abc;
var  a, b, c, d, h, s, p: real;
begin 
 writeln('Введите 3 стороны треугольника'); 
 readln(a); 
 readln(b); 
 readln(c); 
 if c > a + b then writeln('Ошибка! Одна сторона не может быть больше суммы двух других, введите третью сторону ещё раз или перезапустите программу и введите верные данные');
if c > a + b then readln(c);
if (a > b) and (a > c) then d := a  else if (b > c) then d := b else d := c;
p := (a + b + c) / 2;
s := sqrt(p * (p - a) * (p - b) * (p - c));
h := 2 * s / d;
writeln('Высота равна - '+h);end.
ПОКАЗАТЬ ОТВЕТЫ
Ptigran Ptigran  09.08.2020 06:56
Var a, b, c, max, p, h : real;
begin
write('введите сторону а'); readln (a);
write('введите сторону b'); readln (b);
write('введите сторону c'); readln (c);

while ((c >a+b) or (a>b+c) or (b>a+c))
begin
write ('введите повторно сторону с');
readln (c);
end;

if (a>=b) and (a>=c) then max:=a
else if (b>=a) and (b>=c) then max:=b
else if if (c>=b) and (c>=a) then max:=c;

p:=(a+b+c)/2
h:= 2*sqrt (p*(p-a)*(p-b)*(p-c))/max;

writeln ('h= ',h);
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика