
Задание для паскаля Є цілочисельний масив n*m елементів. Знайти номер рядка з мінімальною сумою
модулів елементів. (Есть целочисленный массив n * m элементов. Найти номер строки с минимальной суммой модулей элементов.) написать программу и объяснить что к чему

Ответы на вопрос

Внимание! Если программа не работает, обновите версию!
begin
var (n,m):=ReadInteger2('Количество строк и столбцов в массиве:');
Writeln('*** Исходный массив ***');
var a:=MatrRandom(n,m,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
Writeln(a.Rows.Select(r->r.Select(t->Abs(t)).Sum).ToArray.IndexMin+1)
end.




const
maxn = 100;
type
myarr = array [1..maxn, 1..maxn] of longint;
var
a: myarr;
n, m, i, j, sum, ini, max: longint;
begin
readln(n, m);
max := 0;
for i := 1 to n do begin
sum := 0;
for j := 1 to m do begin
read(a[i, j]);
sum := sum + abs(a[i, j]);
end;
if (sum > max) then begin
ini := i;
max := sum;
end;
end;
writeln(ini);
end.



Для решения данной задачи нахождения номера рядка с минимальной суммой модулей элементов в целочисельном массиве n * m, можно написать программу на языке программирования Паскаль.
Первым шагом является ввод размеров массива (n и m) и самого массива с его элементами. Затем мы проходим по каждой строке, вычисляя сумму модулей элементов и запоминая минимальную сумму и соответствующий номер строки. После того, как все строки обработаны, мы выводим найденный номер рядка с минимальной суммой модулей элементов.
Вот программа на Паскале, решающая данную задачу:
pascalprogram MinSumOfAbsElements; const MAX_SIZE = 100; // Максимальный размер массива var arr: array[1..MAX_SIZE, 1..MAX_SIZE] of Integer; n, m, i, j, minSum, minSumRow: Integer; function AbsValue(num: Integer): Integer; begin if num < 0 then AbsValue := -num else AbsValue := num; end; begin // Ввод размеров массива WriteLn('Введите количество строк (n): '); ReadLn(n); WriteLn('Введите количество столбцов (m): '); ReadLn(m); // Ввод элементов массива WriteLn('Введите элементы массива: '); for i := 1 to n do for j := 1 to m do Read(arr[i, j]); // Находим номер рядка с минимальной суммой модулей элементов minSum := MaxInt; for i := 1 to n do begin // Вычисляем сумму модулей элементов в текущей строке var sum := 0; for j := 1 to m do sum := sum + AbsValue(arr[i, j]); // Обновляем минимальную сумму и номер ряда, если необходимо if sum < minSum then begin minSum := sum; minSumRow := i; end; end; // Выводим результат WriteLn('Номер ряда с минимальной суммой модулей элементов: ', minSumRow); end.
В этой программе мы используем функцию AbsValue
, чтобы получить модуль элемента массива. Затем, во внешнем цикле по строкам массива, мы вычисляем сумму модулей элементов для каждой строки и сравниваем её с текущим минимумом minSum
. Если сумма модулей текущей строки меньше, мы обновляем minSum
и minSumRow
. По завершении обхода всех строк, находим номер ряда с минимальной суммой модулей элементов и выводим его.
Таким образом, программа на Паскале решает задачу нахождения номера рядка с минимальной суммой модулей элементов в целочисленном массиве n * m.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili