Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Пример №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.






Дата публикования: 2014-11-03; Прочитано: 316 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...