Ввести 3 числа - стороны треугольника (причем третью сторону с проверкой и повторным вводом, если она не удовлетворяет условию). Найти высоту, проведенную к большей стороне. Решить в Паскале! Срочно! Пожалуйста!!!!!
Ввести 3 числа - стороны треугольника (причем третью сторону с проверкой и повторным вводом, если она не удовлетворяет условию). Найти высоту, проведенную к большей стороне. Решить в Паскале! Срочно! Пожалуйста!!!!!
Ответ(ы) на вопрос:
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.
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.
Не нашли ответ?
Похожие вопросы