Программа сортировки матрицы по столбцу - Pascal ABC

Формулировка задачи:

Здравствуйте. Возникла необходимость написать программу по сортировке матрицы по столбцу на Паскале. Вроде бы программа и работает, но иногда бывает ошибка, когда матрица не до конца отсортировывается (1 строка стоит не на том месте). Помогите найти ошибку, пожалуйста. Заранее спасибо.
uses crt;
const nmax=10;
type matr = array[1..nmax,1..nmax] of integer;
mas = array [1..nmax] of integer;
 
procedure Input (var a:matr; n,m:integer);
var
i,j:integer;
begin
Writeln ('Введите матрицу:');
for i:=1 to n do begin
    for j:=1 to m do begin
        gotoxy(5*j-4, 5+i);
        read (a[i,j]);
    end;
end;
end;
 
procedure SortMatrix (var a:matr; var b:mas; n,m,column:integer);
var
i,j,str, numbermax:integer;
f: array [1..nmax] of integer;
begin
for i:=1 to n do
    f[i]:=i;
writeln ('');
for i:=1 to n-1 do begin
      numbermax:=i;
      for j:=i to n do begin
          str:=f[j];
          if a[str,column]>a[numbermax,column] then begin
              numbermax:=j;
          end;
      end;
      str:=f[i];
      f[i]:=f[numbermax];
      f[numbermax]:=str;
end;
for i:=1 to n do begin
    str:=f[i];
    for j:=1 to m do begin
        gotoxy (42+5*j, 5+i);
        writeln (a[str,j]);
    end;
end;
end;
 
var
n,m,column:integer;
a:matr;
b: mas;
begin
writeln ('Введите кол-во строк');
readln (n);
writeln ('Введите кол-во столбцов');
readln (m);
Input (a,n,m);
writeln ('Введите номер столбца, по которому нужно отсортировать матрицу');
readln (column);
SortMatrix (a,b,n,m,column);
end.

Код к задаче: «Программа сортировки матрицы по столбцу - Pascal ABC»

textual
type
  TRow = array [1..MM] of integer;
  TMatrix = array [1..NN] of TRow;
...............
var
  A: TMatrix;
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

8   голосов, оценка 4.500 из 5


СДЕЛАЙТЕ РЕПОСТ