Ввести 3 числа - стороны треугольника (причем третью сторону с проверкой и повторным...

0 голосов
22 просмотров

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


Информатика (15 баллов) | 22 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

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.

(44 баллов)
0

упс, строки сбились, после каждой точки с запятой новая строка

0 голосов

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.

(3.2k баллов)