Задан массив B[1*6] и матрица A[4*8]. Написать программу печати минимального элемента для тех столбцов матрицы А, номера которых указаны элементами массива В — Pascal(Паскаль)

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.

Leave a Comment

29 − 26 =