Если количество ненулевых элементов В меньше , чем (m x n)/3 , сформировать матрицу С размерами к х 3 в первом столбце которой содержатся ненулевые элементы матрицы В , а во втором и третьем столбцах - их координаты в исходной матрице.( (m x n)/3 - число, число к - число не нулевых элементов в матрице В .)
Задачу необходимо выполнить через procedure или function.
Вот что я делал , но это не работает ((
program lab; uses CRT; const n = 3; m = 4; type matr= array[1..m,1..n] of integer; procedure Vvod_B(var B:matr); var i,j,m,n:integer; begin writeln('Vvedite kol-vo strok v matrice B ');readln(m); writeln('Vvedite kol-vo stolbcov v matrice B ');readln(n); writeln; for i:=1 to m do for j:=1 to n do begin write('B[',i,',',j,']: ');readln(B[i,j]); end; writeln; writeln(' matrica B :'); writeln; for i:=1 to m do begin for j:=1 to n do write(B[i,j]:5,' '); writeln; end; end; procedure Perestanovka(B:matr; var c:matr); var y,i,j,m,n:integer; begin y:= 0; begin for i:=1 to m do begin for j:=1 to n do begin if B[i,j]<>0 then begin y:=y+1; c[y,1]:=B[i,j]; c[y,2]:=i; c[y,3]:=j; end; end; end; end; readln; end; procedure Vivod_C(C:matr); var i,j,m,n,y:integer; begin for i:=1 to y do begin for j:=1 to 3 do write(C[i,j]:5,' '); writeln; end; end; var B,C:matr; begin clrscr; Vvod_B(B); Perestanovka(B,C); Vivod_C(C); readln; end.