Сортировка двумерного массива

  • Автор темы rsaymka
  • Дата начала
R

rsaymka

Гость
#1
Здравствуйте помогите пожалуйста разобраться,задали задачу(завтра сдавать).Условие Сортировать столбцы в матрице 6х6 по убыванию наименьших элементов в столбце .Не могу разобраться правильно ли я сделал?...
Код:
program lab2;
uses crt;
const n=6; m=6;
type arr= array[1..n,1..m] of integer;
Var ft,fi: text;
i,j:integer;
A:Arr;
E:char;
f:string;

Procedure SWP(Var X,Y:Integer); {меняем местами X и Y}
Var T:Integer;
Begin
T:=X;
X:=Y;
Y:=T;
End;

Procedure SWPC(X,Y:Integer);	{меняем местами строки с элементами X и Y}
Var T:Integer;
Begin
For T:=1 To M Do
SWP(A[X,T],A[Y,T]);
End;

Function MinC(X:Integer):Integer;  {определение максимального элемента в строке}
Var Min,T:Integer;
Begin
Min:=A[X,1];
For T:=1 To M Do If A[X,T]>Min Then Min:=A[X,T];
MinC:=Min;
End;

Procedure Sort; {сотировка строк по убыванию максимального элемента}
Var X,Y:Integer;
Begin
For X:=1 To N-1 Do
For Y:=X+1 To N Do
If MinC(X)>MinC(Y) Then SWPC(X,Y);
End;

begin
clrscr;
writeln('Vi hotite zadat matrizu s klaviaturi? (Y/N):'); {спрашиваем, откуда брать исходные данные}
readln(E);
If UpCase(E)='Y' then  {ввод матрицы с клавиатуры}
begin
for i:=1 to n do
for j:=1 to m do
begin
Write('Vvedite A[',i,',',j,']=');
Readln(A[i,j]);
end;
writeln;
end;

If UpCase(E)='N' then {загрузка матрицы из файла}
begin
writeln('Matriza budet zagruzena iz faila. Vvedite imja faila:');
readln (f);
assign(ft,'D:\massiv\input.txt');
reset(ft);
For I:=1 To N Do
For j:=1 To M Do
Read(Ft,A[I,J]);
end;

assign(fi, 'd:\massiv\input.txt'); {создаём файл для вывода результатов и открываем его для записи}
Rewrite(fi);

writeln('Ishodnaya matrica:'); {выводим исходную матрицу на экран и в файл}
writeln;
writeln(fi,'Ishodnaya matrica:');
writeln(fi);
for i:=1 to n do begin
for j:=1 to m do write(' ',a[i,j]);
writeln;
end;
for i:=1 to n do begin
for j:=1 to m do write(fi,' ',a[i,j]);
writeln(fi);
end;
writeln;
writeln(fi);
Sort; {сама сортировка!}
writeln('Otsortirovannaja matrica:'); {выводим отсортированную матрицу на экран и в файл}
writeln;
writeln(fi,'Otsortirovannaja matrica:');
writeln(fi);
for i:=1 to n do begin
for j:=1 to m do write(' ',a[i,j]);
writeln;
end;
for i:=1 to n do begin
for j:=1 to m do write(fi,' ',a[i,j]);
writeln(fi);
end;
Close(fi); {закрываем файл с записанными данными}
writeln;
writeln ('Rezultat sochranen v faile ''rez.txt". Dlja zawershenia nazmite "Enter"');
readln;
end.