program the121094;
uses crt;
const count=6;
m=4;
n=8;
type
vec=array[1..count] of integer;
arr=array[1..m,1..n] of integer;
var
mas:vec;
matr:arr;
i,j:integer;
D:set of byte; {Множество. Реализация - защита от повторений при выводе}
procedure inputmas(var mas:vec);
var
i:integer;
begin
for i:=1 to count do begin
write('mas[',i,']=');
readln(mas[i]);
end;
end;
procedure inputmatr(var matr:arr);
var
i,j:integer;
begin
for i:=1 to m do
for j:=1 to n do matr[i,j]:=random(50);
end;
procedure writemas(mas:vec);
var
i:integer;
begin
for i:=1 to count do write(mas[i],' ');
end;
procedure writematr(matr:arr);
var
i,j:integer;
begin
for i:=1 to m do begin
for j:=1 to n do write(matr[i,j]:4);
writeln;
end;
end;
procedure sortmas(var mas:vec);
var
i,k,buf:integer;
begin
for i:=1 to count-1 do
for k:=i+1 to count do
if mas[i]>mas[k] then begin
buf:=mas[i];
mas[i]:=mas[k];
mas[k]:=buf;
end;
end;
procedure printmin(matr:arr; j:integer);
var
i,min:integer;
begin
min:=matr[1,j];
for i:=1 to m do if matr[i,j]<min then min:=matr[i,j];
writeln('dlya ',j,' stolbtsa min=',min);
end;
begin
clrscr;
writeln('input mas:');
inputmas(mas); {ввод вектора вручную}
inputmatr(matr); {ввод матрицы датчиком случайных чисел}
clrscr; {повторная очистка экрана после ввода вручную}
writeln('Mas B:');
writemas(mas);{вывод вектора на экран}
writeln;
writeln('Matr A:'); {вывод матрицы на экран}
writematr(matr);
writeln;
sortmas(mas); {сортировка для упорядоченного вывода по возрастанию номеров столбцов}
D:=[];
for i:=1 to count do
for j:=1 to n do if mas[i]=j then if not (j in D) then begin
D:=D+[j];
printmin(matr,j); {нахождение и печать искомого минимального элемента для столбцов}
break;
end;
readkey;
end.