11. В целочисленных массивах A и B содержатся длины катетов десяти прямоугольных треугольников (A[i] — длина первого катета, B[i] — длина второго катета i-го треугольника). Напишите программу на Паскаль, которая по имеющимся данным определит треугольник с наибольшей площадью и выведет его номер, длины катетов и площадь. Предусмотрите случай, когда таких треугольников несколько.
Ответ
Программа на языке Паскаль, которая определяет треугольник с наибольшей площадью и выводит его номер, длины катетов и площадь:
program FindTriangleWithMaxArea;
var
A, B: array[1..10] of Integer;
area: array[1..10] of Real;
maxArea: Real;
maxIndexes: array[1..10] of Integer;
countMax: Integer;
i, j: Integer;
function TriangleArea(a, b: Integer): Real;
begin
TriangleArea := a * b / 2.0;
end;
begin
writeln('Введите длины катетов для 10 треугольников:');
for i := 1 to 10 do
begin
readln(A[i], B[i]);
area[i] := TriangleArea(A[i], B[i]);
end;
maxArea := 0.0;
countMax := 0;
for i := 1 to 10 do
begin
if area[i] > maxArea then
begin
maxArea := area[i];
countMax := 1;
maxIndexes[countMax] := i;
end
else if area[i] = maxArea then
begin
countMax := countMax + 1;
maxIndexes[countMax] := i;
end;
end;
writeln('Треугольник(и) с наибольшей площадью:');
for j := 1 to countMax do
begin
writeln('Номер треугольника: ', maxIndexes[j]);
writeln('Длины катетов: A[', maxIndexes[j], '] = ', A[maxIndexes[j]], ', B[', maxIndexes[j], '] = ', B[maxIndexes[j]]);
writeln('Площадь: ', maxArea:0:2);
end;
end.
Программа предусматривает ввод длин катетов для 10 треугольников. Затем она вычисляет площадь каждого треугольника и находит треугольник(и) с наибольшей площадью. Если есть несколько треугольников с максимальной площадью, программа выводит все их номера, длины катетов и площадь.