Найти номер строки матрицы с минимальной суммой элементов - PascalABC.NET
Формулировка задачи:
5) Заполнить случайными значениями матрицу произвольного размера, вывести на экран. Найти номер строки матрицы с минимальной суммой элементов
Решение задачи: «Найти номер строки матрицы с минимальной суммой элементов»
textual
Листинг программы
begin
var a := MatrRandomInteger(ReadInteger('Строк m ='), ReadInteger('Столбцов n ='));
WriteLn('Матрица:'); a.Println;
var s := a.Row(0).Sum; var n := 1;
for var i := 1 to a.GetLength(0)-1 do
if a.Row(i).Sum < s then (s, n) := (a.Row(i).Sum, i+1);
WriteLn('Минимальная сумма в строке ', n);
end.
Объяснение кода листинга программы
- var a := MatrRandomInteger(ReadInteger('Строк m ='), ReadInteger('Столбцов n ='));
В этой строке кода происходит инициализация матрицы
aслучайными целыми числами с помощью функцииMatrRandomInteger. Параметры функцииReadIntegerиспользуются для определения количества строк и столбцов матрицы. - WriteLn('Матрица:'); a.Println;
Здесь выводится сообщение
Матрица:и затем сама матрицаaс помощью методаPrintln. - var s := a.Row(0).Sum; var n := 1;
В этой строке инициализируются переменные
sиn.sприсваивается сумма элементов первой строки матрицыa, аnприсваивается 1, так как предполагается, что первая строка имеет минимальную сумму. - for var i := 1 to a.GetLength(0)-1 do Это цикл, который проходит по всем строкам матрицы, начиная со второй строки и до предпоследней.
- if a.Row(i).Sum < s then (s, n) := (a.Row(i).Sum, i+1);
В этой строке сравнивается сумма элементов текущей строки с переменной
s. Если сумма текущей строки меньше, то значения переменныхsиnобновляются. - WriteLn('Минимальная сумма в строке ', n); После завершения цикла выводится сообщение с минимальной суммой в строке и номером этой строки.