Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!