Задание 11 Параграф 1.4 ГДЗ Босова 9 класс 2023 (Информатика)
Площадь прямоугольного треугольника равна половине произведения длин катетов. При делении произведения получится вещественное число. Сравнивать вещественные числа очень неудобно, поэтому сравнивать можно только произведение катетов и искать максимальную величину.
Для увеличения вероятности появления треугольников с одинаковой площадью, количество их (N) в программе увеличено.
const
N = 30;
var
a, b: array[1..N] of integer;
s: array[1..N] of integer;//массив для хранения площадей
i, im, max, k: integer;
begin
randomize;
for i := 1 to N do
begin
a[i] := random(5) + 5;
b[i] := random(6) + 6;
s[i] := a[i] * b[i]
end;
max := s[1]; im := 1;
for i := 2 to N do //определения максимальной площади
if s[i] > max then
begin
max := s[i]; im := i //
end;
writeln(‘Номер треугольника > > ‘, im, ‘, Катет а > > ‘, a[im], ‘, Катет b > > ‘, b[im], ‘, Максимальная площадь > > ‘, (max / 2):4:2);
write(‘Максимальную площадь имеют треугольники с номерами: ‘);
for i := 1 to N do
if s[i] = max then write(i, ‘, ‘)
end.
Окно вывода:
Номер треугольник > > 6, Катет а > > 9, Катет b > > 10, Максимальная площадь > > 45.00
Максимальную площадь имеют треугольники с номерами: 6, 8, 27
Площадь прямоугольного треугольника равна $$S=\dfrac{ab}{2}$$, где $$a$$ и $$b$$ — длины катетов. Чтобы не работать с вещественными числами при сравнении, удобно сравнивать произведения $$a \cdot b$$: у треугольника с наибольшим произведением будет и наибольшая площадь.
Сначала заполним массивы катетов случайными значениями, затем найдём максимальное произведение и номер первого треугольника с этой площадью. После этого выведем все номера треугольников, у которых произведение катетов равно максимальному.
const
N = 30;
var
a, b: array[1..N] of integer;
s: array[1..N] of integer;
i, im, max: integer;
begin
randomize;
for i := 1 to N do
begin
a[i] := random(5) + 5;
b[i] := random(6) + 6;
s[i] := a[i] * b[i];
end;max := s[1];
im := 1;
for i := 2 to N do
if s[i] > max then
begin
max := s[i];
im := i;
end;writeln(‘Номер треугольника: ‘, im, ‘, катет a: ‘, a[im], ‘, катет b: ‘, b[im], ‘, площадь: ‘, (max / 2):0:2);
write(‘Максимальную площадь имеют треугольники с номерами: ‘);
for i := 1 to N do
if s[i] = max then write(i, ‘ ‘);
end.
Так как при равенстве площадей равны и произведения катетов, программа выводит все номера треугольников с максимальной площадью.
Ответ
Программа на Pascal приведена выше.