Страница 1 из 1

Поиск максимального элемента и сортировка столбцов матрицы. Pascal.

Добавлено: 13 июн 2008, 23:03
-=Mosvit=-
Помогите пожалуйста составить программу на Паскале с таким заданием:
Составить программу, предусматривающую чтение исходной матрицы с дискового файла. Переставить столбцы в порядке возрастания наибольших элементов.

Чтение с матрицы с памяти компьютера я сделал, присвоив ей mas[i,j], теперь нужно в этой матрице mas[i,j] найти максимальный элемент в каждом столбце и переставить столбцы по возрастанию максимального элемента. На этом и застрял. :( :confused:

Код: Выделить всё

program lab2;
uses crt;
const n=5; m=5;
var mas: array[1..n,1..m] of integer;
      ft: text;
      i,j:integer;
begin
clrscr;
assign(ft,'123.txt');
reset(ft);
i:=1;
while not seekeof(ft) do
  begin
    j:=1;
    while not seekeoln(ft) do
       begin
          read(ft, mas[i,j]);
          j:=j+1;
       end;
     readln(ft);
     i:=i+1;
  end;
writeln;
writeln('Ishodnaya matrica:');
writeln;
for i:=1 to n do begin
 for j:=1 to m do write(' ',mas[i,j]);
writeln;
end;
readkey;
end.

Re: Поиск максимального элемента и сортировка столбцов матрицы. Pascal.

Добавлено: 14 июн 2008, 11:53
Medved
Немного изменил
[syntax='Delphi']
program lab2;
uses crt;
const n=5; m=5;
type arr= array[1..n,1..m] of integer;
Var ft: text;
i,j:integer;
A:Arr;

Procedure SWP(Var X,Y:Integer);
Var T:Integer;
Begin
T:=X;
X:=Y;
Y:=T;
End;

Procedure SWPC(X,Y:Integer);
Var T:Integer;
Begin
For T:=1 To N Do
SWP(A[T,X],A[T,Y]);
End;

Function MaxC(X:Integer):Integer;
Var Max,T:Integer;
Begin
Max:=A[1,X];
For T:=1 To N Do If A[T,X]>Max Then Max:=A[T,X];
MaxC:=Max;
End;

Procedure Sort;
Var X,Y:Integer;
Begin
For X:=1 To M-1 Do
For Y:=X+1 To M Do
If MaxC(X)>MaxC(Y) Then SWPC(X,Y);
End;

begin
clrscr;
assign(ft,'123.txt');
reset(ft);
For I:=1 To N Do
For j:=1 To M Do
Read(Ft,A[I,J]);
writeln('Ishodnaya matrica:');
writeln;
for i:=1 to n do begin
for j:=1 to m do write(' ',a[i,j]);
writeln;
end;
Sort;
for i:=1 to n do begin
for j:=1 to m do write(' ',a[i,j]);
writeln;
end;
repeat Until KeyPressed;
end.
[/syntax]
Могут быть мелкие синт. ошибки (писал без компилятора)