Консультация № 136720
13.05.2008, 22:28
0.00 руб.
0 1 1
Уважаемые эксперты,помогите пожалуйста решитть следующее:
выполнить обработку элементов прямоугольной матрицы А, имеющий N строк и М столбцов. Добавить к элементам каждой строки такой новый элемент, чтобы сумма положительных элементов стала бы равна модулю суммы отрицательных элементов. Результат оформить в виде матрицы из N строк и М+1 столбцов.
Спасибо!)

Обсуждение

Неизвестный
13.05.2008, 23:08
общий
это ответ
Здравствуйте, Igor lukashov!
Массив задается генератором случайных чисел.
Далее находится сумма отрицательных элементов и положительных элементов в строке.
После чего находится разность модуля суммы отрицательных и положительных, и эта разница записывается в новый столбец.

В 1-ой программе изменяется исходная матрица, во 2-ой создается новая матрица.

Приложение:
program a1;const n=5; m=10;varsum_minus, sum_plus,i,j:integer;a:array [1..n,1..m+1] of integer;beginrandomize;for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(10)-5; write(a[i,j]:4); end; writeln; end;for i:=1 to n do begin sum_minus:=0; sum_plus:=0; for j:=1 to m do if a[i,j]<0 then sum_minus:=sum_minus+a[i,j] else sum_plus:=sum_plus+a[i,j]; a[i,m+1]:=abs(sum_minus)-sum_plus; end;writeln(‘Result:‘);for i:=1 to n do begin for j:=1 to m+1 do begin write(a[i,j]:4); end; writeln; end;writeln(‘Press ENTER‘);readln;end.----------------------------------------------------------------------------program a2;const n=5; m=10;varsum_minus, sum_plus,i,j:integer;a:array [1..n,1..m] of integer;b:array [1..n,1..m+1] of integer;beginrandomize;for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(10)-5; write(a[i,j]:4); b[i,j]:=a[i,j]; end; writeln; end;for i:=1 to n do begin sum_minus:=0; sum_plus:=0; for j:=1 to m do if a[i,j]<0 then sum_minus:=sum_minus+a[i,j] else sum_plus:=sum_plus+a[i,j]; b[i,m+1]:=abs(sum_minus)-sum_plus; end;writeln(‘Result:‘);for i:=1 to n do begin for j:=1 to m+1 do begin write(b[i,j]:4); end; writeln; end;writeln(‘Press ENTER‘);readln;end.
Форма ответа