Pascal/Вводятся 4 числа – длины отрезков. Найти максимальную площадь треугольника составленного из трёх отрезков этого набора или написать, что таких треугольников нет.

yuralavrenov2016 yuralavrenov2016    2   27.12.2020 21:39    17

Ответы
Zores Zores  12.02.2021 21:24

Объясню идею, с кодом я думаю ты сам справишься.

Воспользуемся теоремой Герона:

p = \frac{a + b + c}{2}

S = \sqrt{p(p-a)(p-b)(p-c)}

То есть требуется только перебрать 4 варианта:

a, b, c

a, b, d

a, c, d

b, c, d

Вычислить площадь для каждого и найти максимум из них.

ПОКАЗАТЬ ОТВЕТЫ
paninvla2018 paninvla2018  12.02.2021 21:24

function Geron(ar: array of real): real;

begin

 var (a, b, c) := ar;

 if (a + b > c) and (a + c > b) and (b + c > a) then begin

   var p := (a + b + c) / 2;

   Result := Sqrt(p * (p - a) * (p - b) * (p - c))

 end

 else

   Result := 0

end;

begin

 var a := ReadArrReal(4);

 var s := a.Combinations(3).Select(t -> Geron(t)).Max;

 if s > 0 then

   s.Print

 else

   Print('Таких треугольников нет')

end.


Pascal/Вводятся 4 числа – длины отрезков. Найти максимальную площадь треугольника составленного из т
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика