Работа 3.7 Упр.23 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 23. Дана прямоугольная матрица. Найти строку с наибольшей и строку с наименьшей суммой элементов. Вывести на печать найденные строки и суммы их элементов.
Нужно найти в прямоугольной матрице две строки: с наибольшей суммой элементов и с наименьшей суммой элементов. Для этого сначала вводим матрицу, затем для каждой строки вычисляем сумму её элементов и запоминаем номера строк с максимальной и минимальной суммой.
Алгоритм:
- Ввести размер матрицы $$n$$ и элементы $$a[i,j]$$.
- Для каждой строки $$i$$ вычислить сумму $$t=\sum_{j=1}^{n} a[i,j]$$.
- Если сумма больше текущей максимальной, запомнить её и номер строки.
- Если сумма меньше текущей минимальной, запомнить её и номер строки.
- Вывести найденные строки и их суммы.
Программа на Pascal:
var a: array[1..20, 1..20] of integer;
n, s, i, j, k, mins, maxs, mini, maxi, t: integer;
begin
Clrscr;
Write(‘Введите количество строк n= ‘);
Readln(n);
for i:=1 to n do
for j:=1 to n do
begin
Write(‘a(‘, i, ‘,’, j, ‘)= ‘);
Readln(a[i,j]);
end;Writeln(‘Матрица a’);
for i:=1 to n do
begin
for j:=1 to n do
Write(a[i,j], ‘ ‘);
Writeln;
end;mins:=0;
for j:=1 to n do
mins:=mins + a[1,j];
maxs:=mins;
mini:=1;
maxi:=1;for i:=1 to n do
begin
t:=0;
for j:=1 to n do
t:=t + a[i,j];
if t > maxs then
begin
maxs:=t;
maxi:=i;
end;
if t < mins then
begin
mins:=t;
mini:=i;
end;
end;Writeln(‘Max summ = ‘, maxs, ‘ stroka ‘, maxi);
for j:=1 to n do
Write(a[maxi,j], ‘ ‘);
Writeln;Writeln(‘Min summ = ‘, mins, ‘ stroka ‘, mini);
for j:=1 to n do
Write(a[mini,j], ‘ ‘);
Readln;
end.
В программе сначала сумма первой строки используется как начальное значение и для максимума, и для минимума. Затем остальные строки сравниваются с этими значениями, и номера нужных строк сохраняются в переменных maxi и mini.
Ответ
Нужно найти строки матрицы с максимальной и минимальной суммой элементов. Программа выше решает эту задачу: она вычисляет суммы строк, запоминает номера строк с наибольшей и наименьшей суммой и выводит сами строки и их суммы.