16.05.2008, 14:46
общий
это ответ
Здравствуйте, Raevil!
Решение второй задачи с пояснениями в приложении.
Приложение:
uses crt;var a:array[1..20,1..20]of integer;{матрица} sum:array[1..20]of integer; {масив сумм} n,m,i,j,k,x:integer;beginclrscr;write(‘Kolichestvo strok= ‘);readln(n);write(‘Kolichestvo stolbcov= ‘);readln(m);randomize;Writeln(‘Matrica:‘);{sozdanie i vyvod }for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(10)-2; write(a[i,j]:4); end; writeln; end;readln;{podschet summ po strokam}for i:=1 to n do begin sum[i]:=0; for j:=1 to m do if(a[i,j]>0)and(a[i,j] mod 2=0) then begin sum[i]:=sum[i]+a[i,j]; end; end;{vstavka summy pervym stolbcom}for i:=1 to n do begin for j:=m downto 1 do {сдвигаем все столбцы на 1 впрво} a[i,j+1]:=a[i,j]; a[i,1]:=sum[i]; {вместо первого столбца вставляем суммы по строкам} end;{sortirovka strok po vozrastaniu v pervom stolbce}for i:=1 to n-1 dofor k:=1 to n-1 doif a[k,1]>a[k+1,1] then {если в первом столбце возрастание} begin for j:=1 to m+1 do begin x:=a[k,j]; a[k,j]:=a[k+1,j]; {то переставляем во всех столбцах} a[k+1,j]:=x; end; end;{vyvod rezultata}writeln(‘Rezultat:‘);for i:=1 to n do begin for j:=2 to m+1 do {выводим со сдвигом на 1 вправо} write(a[i,j]:4); writeln; end;readlnend.