Дана матрица A[1:5;1:6]. Найти максимальный элемент в каждом столбце и сформировать из них массив

Если наибольший из этих элементов меньше 100, то элементы полученного массива упорядочить по возрастанию. Иначе из полученного массива удалить максимальный элемент

code: #pascal
program PascalGuru;
uses crt;
 
var A:array[1..5,1..6] of integer;{объявление переменных}
    B:array[1..6] of integer;
    n,i,j,max,k:integer;
    swop:boolean;
 
 
procedure exchange(var a,b:integer);
var c:integer;
begin
c:=a; a:=b; b:=c; end;
 
{-----------------------------------}
begin
writeln('Vvedite matricu: '); writeln;
 
 
for i:=1 to 5 do
for j:=1 to 6 do begin write('A[',i,',',j,']='); readln(A[i,j]); end;
 
clrscr;
 
writeln('Vvedennyi massiv:');
for i:=1 to 5 do begin writeln;
for j:=1 to 6 do write (A[i,j]:8);  end;
writeln;
 
for j:=1 to 6 do
    begin
    max:=A[1,j];
    for i:=2 to 5 do
    if A[i,j]>max then max:=A[i,j];
    B[j]:=max;
    end;
 
writeln;writeln('Massiv maksimalшnyh el-tov:'); writeln;
for i:=1 to 6 do write(B[i]:8);
 
max:=B[1];
k:=1;
for i:=2 to 6 do
    if B[i]>max then begin max:=B[i]; k:=i;    end;
 
if max<100 then
               begin
                repeat
                n:=6;
                swop:=false;
                for i:=1 to n-1 do
                if B[i]>B[i+1] then begin         {esli "<" togda po ubivaniiu }
                exchange(B[i],B[i+1]); swop:=true; end;
                n:=n-1;
                until not swop;
                writeln;
                writeln;writeln('Otsortirovannyi massiv:'); writeln;
                for i:=1 to 6 do write(B[i]:8);
               end
           else
               begin
               For i:=k+1 to 6 do B[i-1]:=B[i];
               writeln;
                writeln;writeln('Massiv posle udaleniya:'); writeln;
                for i:=1 to 5 do write(B[i]:8);
               end;
 
readln;
end.      
Поделиться:

Похожие статьи: