Galo4kaa
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Помогите пожалуста, очень срочно надо...вроде бы всё правильно сделано но не то что-то считает.... Выполнить задание по обработке матриц с использованием указанных методов сорти-ровок : Дана действительная матрица A размерности . Каждый столбец содержит хотя бы один отрицательный элемент. Если максимальный элемент матрицы принадлежит интер-валу [4, 15], то упорядочить столбцы матрицы по возрастанию сумм отрицательных элемен-тов столбцов методом линейной вставки. В противном случае матрицу оставить без изменения. На печать выдавать всю исходную информацию, промежуточные результаты и преоб-разованную матрицу. Написать программу: без использования подпрограмм uses crt; Const N_max=10 ; Var i, j, l, k, n, m, v :integer; sumA, sumB :real; A, B : array [1..max,1..max] of real; C, D : array [1..max] of real; Begin clrscr; Write ('Vvedite raznomernocst massiva M, N (<=', N_max,'):') ; ReadLn(M,N) ; WriteLn ('Vvedite elementi massiva') ; For i:=1 to m do For j:=1 to n do Begin Write ('A[', i,',',j,']=') ; ReadLn (A[i,j]) End ; WriteLn ('vector A: ') ; For i:=1 to m do Begin For j:=1 to n do Write (A[i,j]:5) ; WriteLn End ; writeLn ('max element') ; max:=A[1,1] ; i_max:=1 ; j_max:=1 ; For i:=1 to m do for j:=1 to n do If a[i,j]>max then Begin max:=a[i,j] ; i_max:=i ; j_max:=j End ; writeLn ( max:5:2 ); l:=0 ; for i:=1 to n do for j:=1 to m do if (max<15) and (max>4) then l:=1; if l = 1 then begin for i:= 1 to m do b[i,1]:= a[i,1]; for j := 2 to n do begin sumA:=0; for i:= 1 to m do sumA:= sumA + a[i,j]; for k:=1 to j-1 do begin sumB:=0; for i:= 1 to m do sB := sB + b[i,j-k]; if sumA <= sumB then begin for i:= 1 to m do b[i,j+1-k]:= a[i,j]; break; end else for i:=1 to m do begin b[i,j+1-k]:=b[i,j-k]; b[i,j-k] := a[i,j]; end; end; end; l:=1; for j:=1 to n do begin sumA:=0; sumB:=0; for i:=1 to m do begin sumA := sumA + a[i,j]; ssmB := sumB + b[i,j]; end; c[l]:=sumA; d[l]:=sumB; l:=l+1; end; writeln; for l:=1 to n do write (c[l]:5:1 ); writeln; writeln; for i:=1 to m do begin for j:=1 to n do begin write ( b[i,j]:5:1 ); end; writeln; end; writeln; for l:=1 to n do write (d[l]:5:1 ); writeln; end else begin writeln; for i:=1 to m do begin for j:=1 to n do begin b[i,j]:= a[i,j]; write ( b[i,j]:5:1 ); end; writeln; end; end; repeat until keypressed; end. |