Лекция: Пример №2

 

Program SortStrMatr;

{Сортировка строк матрицы по главному столбцу.

Главный столбец матрицы – это столбец с минимальным элементом}

Uses Crt; {Подключение модуля}

Const

R=10;

Type

TInd=1..R;

TElem=Integer;

TVect=Array[TInd] of TElem;

TMatr=Array[TInd] of TVect;

{$R+}

Procedure InMatr(kstr,kstb:TInd;Var M:TMatr);

{Процедура ввода матрицы}

Var

i,j:TInd;

Begin

Writeln('Вводите матрицу по строкам:');

For i:=1 To kstr

Do Begin

For j:=1 To kstb

Do Read(M[i,j]);

ReadLn;

End;

End;{InMatr}

 

Function NStbMin(kstr,kstb:TInd; Const M:TMatr):TInd;

{Функция определения номера столбца с минимальным элементом}

Var

i,j:TInd;

min:TElem;

Begin

min:=M[1,1];

NStbMin:=1;

For i:=1 To kstr

Do For j:=1 To kstb

Do If M[i,j]<min

Then Begin

min:=M[i,j];

NStbMin:=j;

End;

End;{NStbMin}

 

Procedure SortMatr(kstr,nstb:TInd; Var M:TMatr);

{Процедура сортировки строк матрицы методом выбора}

Var

i,k,imax:TInd;

StrM:TVect;

Begin

For i:=1 To kstr-1

Do Begin

imax:=i;

For k:=i+1 To kstr

Do If M[k,nstb]>M[imax,nstb]

Then imax:=k;

StrM:=M[i];

M[i]:=M[imax];

M[imax]:=StrM;

End;

End;{SortMatr}

 

Procedure Okno(x1,y1,x2,y2,cf,ct:Byte);

{Процедура формирования окна на экране}

Begin

Window(x1,y1,x2,y2); {Установка параметров окна}

TextBackGround(cf); {Установка цвета фона}

TextColor(ct); {Установка цвета текста}

ClrScr; {Очистка окна}

End;{Okno}

 

Procedure OutMatr(kstr,kstb:TInd; Const M:TMatr);

{Процедура вывода матрицы}

Var

i,j:TInd;

Begin

For i:=1 To kstr

Do Begin

For j:=1 To kstb

Do Write(M[i,j]:4);

WriteLn;

End;

End;{OutMatr}

 

Var

N,M,NStb:TInd;

Matr:TMatr;

Begin

Okno(1,1,80,25,0,15); {На черном фоне белый текст}

Write('Размеры матрицы? ');

ReadLn(N,M);

Okno(1,6,38,20,2,15); {На зеленом фоне белый текст}

InMatr(N,M,Matr); {Ввод матрицы}

NStb:=NStbMin(N,M,Matr);{Поиск главного столбца}

SortMatr(N,NStb,Matr); {Сортировка строк}

Okno(40,6,80,20,3,15); {На голубом фоне белый текст}

WriteLn('Отсортированная матрица');

OutMatr(N,M,Matr);

ReadLn;

End.

 


еще рефераты
Еще работы по информатике