Матрица A[M,N]. Расположить столбцы в порядке возрастания количества положительных элементов — Pascal(Паскаль)

Кол-во строк и столбцов
4 4
Массив:
1 -5 6 1
2 -1 7 -2
-3 2 8 -1
2 -1 9 -1
Массив после изменения:
-5 1 6 1
-1 2 7 -2
2 -3 8 -1
-1 2 9 -1
PROGRAM zad1;
uses crt;
Type TArray=array[1..100,1..100] of integer;
     TMal=array[1..100] of integer;
Var a:TArray;
    b:TMal;
    i,j,ix,jx,n,k,kol,p,c:integer;
Begin
randomize;
WriteLn('Кол-во строк и столбцов');
Read(n,k);
For i:=1 to n do
For j:=1 to k do
a[i,j]:=random(50)-25;
writeln('Массив:');
for i:=1 to n do
 begin
  for j:=1 to k do
  write(a[i,j]:4);
  writeln;
 end;
{будем заполнять одномерный массив}
for j:=1 to k do
 begin
  kol:=0;
  for i:=1 to n do
  if a[i,j]>0 then kol:=kol+1;
  b[j]:=kol;
 end;
writeln;
for i:=1 to k do
write(b[i]:4);
writeln;
{походу перестановка начинается}
for i:=1 to k-1 do
for j:=i+1 to k do
if b[i]>b[j] then
 begin
  p:=b[i];
  b[i]:=b[j];
  b[j]:=p;
  for ix:=1 to n do
   begin
    c:=a[ix,i];
    a[ix,i]:=a[ix,j];
    a[ix,j]:=c;
   end;
 end;
writeln('Массив после изменения:');
for i:=1 to n do
 begin
  for j:=1 to k do
  write(a[i,j]:4);
  writeln;
end;
writeln;
for j:=1 to k do
write(b[j]:4);
end.

Leave a Comment

3 + 5 =