Текст программы.

PROGRAM SortNum;

{ Программа Лабораторной работы N 5

Вариант N 31.

А.Я.Умненькая, ст. гр. Я-007 }

VAR

M,N,Jmin,i,j,i1,ki : integer;

Amin,Pr : real;

A : array [1..7,1..7] of real;

B : array [1..7] of real;

Fin,Fout : text;

LABEL

Vvod_M, Vvod_N;

BEGIN

{ Открытие входного и выходного файлов }

assign(Fout,'UMNIK5.RES');

rewrite(Fout);

assign(Fin,'D:LAB1DATF.TXT');

reset(Fin);

{ Ввод количества строк массива }

Vvod_M:

writeln ('Введите число строк массива');

readln(M);

if (M < 2) or (M > 7) then

begin

writeln('Недопустимое значение!');

goto Vvod_M;

end;

{ Ввод количества столбцов массива }

Vvod_N:

writeln ('Введите число столбцов массива');

readln(N);

if (N < 2) or (N > 7) then

begin

writeln('Недопустимое значение!');

goto Vvod_N;

end;

{ заполнение массива числами из файла }

for i:=1 to M do

for j:=1 to N do

read(Fin,A[i,j]);

{ Закрытие входного файла }

close(Fin);

{ Распечатка исходного массива }

Writeln(Fout,' Исходный массив из ',M,'x',N,

' элементов');

for i:=1 to M do

begin

for j:=1 to N do

Write(Fout,A[i,j]:8:2); {печать текущей строки }

Writeln(Fout);

end;

Writeln(Fout);

{ Поиск столбца с минимальным элементом }

Amin := A[1,1];

Jmin := 1;

for i:=1 to M do

for j:=1 to N do

if A[i,j] < Amin then

begin

Amin := A[i,j];

Jmin := j;

end;

{ Определение признака незанятого места }

Pr := Amin - 1.0;

{ Очистка выходного массива }

for i:=1 to M do B[i] := Pr;

{ сортировка "Jmin-го" столбца в выходной файл пересчетом }

for i:= 1 to M do

begin

ki := 1;

for i1:=1 to M do

if A[i1,Jmin] < A[i,Jmin] then ki := ki+1;

{ сдвиг дальше, если элемент уже занят }

while B[ki] <> Pr do ki := ki+1;

B[ki] := A[i,Jmin];

end;

{ Печать номера столбца c минимальным элементом }

Writeln(Fout,'Результаты работы':30);

Writeln(Fout);

Writeln(Fout,' Минимальный элемент находится в ',

Jmin,' столбце');

{ Печать отсортированного массива }

Writeln(Fout,'Сортированный массив':30);

for i:=1 to M do

Write(Fout,B[i]:8:2);

Writeln(Fout);

{ Закрытие выходного файла }

close(Fout);

END.