Program PR ; const stop='нажмите ENTER - '; type matr=array [1..15,1..15] of integer; var A:matr; i,j,N,M:byte; min:integer; p:boolean; F:boolean; procedure pp1(A:matr; M,N:byte;var min:integer); {---- поиск мин. полож. эл-та в вещ. матрице ----} var i:byte; j:byte; p:boolean ; Begin p:=false; for i:=1 to M do repeat if p=false then begin min:=A[i,j]; p:=false end else if min>A[i,j] then min:=A[i,j]; until A[i,j]>0; End; function pp2(A:matr;M,N:byte;f:boolean;var min:integer): boolean; var i:byte; j:byte; begin f:=false; i:=1; while (i<=M-1) and (f=false) do begin j:=i+1; while (j<=n) and (f=false) do begin if A[i,i+1]=2*min then i:=i+1 else f:=true end; end; end; procedure pp3(A:matr;M,N:byte); var i,j:byte; p:boolean; f:integer; begin p:=true;i:=1; while (i<=N) and (p=true) do begin if A[i,i]>a[i+1,i+1] then begin f:=A[i+1,i+1]; a[i+1,i+1]:=a[i,i];A[i,i]:=f; p:=false end; end; end; BEGIN writeln ('naiti minimalno polojitelnii element'); repeat write('введите число строк(стб),не более 15 - '); readln (N); if (N<1) or (N>15) then writeln ('o6ibka') Until (N>= 1) And (N<=15); write('введите число столбцовБне более 15-'); readln (M); repeat if (M<1) or (M>15) then writeln ('ошибка') until (M>=1) or (M<=15); write('введите построчно матрицу (',N,'x',N,')'); readln(N); for i:=1 to N do begin for j:=1 to n do read(A[i,j]); readln end; writeln(' ':3,'исходная матрица:'); writeln; for i:=1 to N do begin for j:=1 to n do write(A[i,j]:5); writeln end; writeln; write(stop); readln; pp1(A,M,N,MIN); writeln('мин пол эл-т=',min); i:=1;while i<=n do begin p:= pp2(A,M,N,f,min); if pp2(A,M,N,F,min) then writeln ('v',a[i,j],'есть элемент,равный',min) else writeln ('v',a[i,j],' нет элемента равного',min); if p=true then writeln(min) else pp3(A,M,N); writeln ('упорядочить матрицу',A[i,j]); writeln('программа окончена. До свидания! - '); readln end END.