Найти наибольший чётный положительный элемент выше главной диагонали и наименьший отрицательный элемент ниже главной диагонали с указанием их индексов

Дан двумерный массив. Найти наибольший чётный положительный элемент выше главной диагонали и наименьший отрицательный элемент ниже главной диагонали с указанием их индексов. Создать новый массив, в котором найденный элементы поменяются местами

code: #pascal
program PascalGuru;
 
var A:array[1..50,1..50] of integer;
    i,j,n:integer;
    max,min:integer;
    maxi,maxj,mini,minj:integer;
{------------------------------------}
procedure exchange(var a,b:integer);
var c:integer;
begin
c:=a; a:=b; b:=c; end;
{------------------------------------}
 
begin
write('razmer matricy N= '); readln (n);
 
{writeln ('Vvedite elementy massiva: '); }
for i:=1 to n do
for j:=1 to n do A[i,j]:=-5+random(26); { begin
write ('X[',i,',',j,']='); readln (A[i,j]); end;   }
 
 
write ('Vot vvedennyy vami massiv: ');
for i:=1 to n do begin writeln;
for j:=1 to n do write(A[i,j]:8); end;
{----------------начало преобразования--------------------}
{***max}
for i:=1 to n do
for j:=1 to n do
 if i<j then
 if (A[i,j]>0) and (A[i,j] mod 2=0) then
   begin
   maxi:=i;
   maxj:=j;
   max:=A[i,j]; break;
   end;
 
 
for i:=1 to n do
for j:=1 to n do
 if i<j then
 if (A[i,j]>0) and (A[i,j] mod 2=0) then
 if A[i,j]>max then
   begin
   maxi:=i;
   maxj:=j;
   max:=A[i,j];
   end;
 {***min}
for i:=1 to n do
for j:=1 to n do
 if i>j then
 if A[i,j]<0 then
   begin
   mini:=i;
   minj:=j;
   min:=A[i,j]; break;
   end;
 
 
exchange(A[maxi,maxj],A[mini,minj]);
{----------------конец преобразования---------------------}
 
writeln;writeln;
 
write ('Vot preobrazovannyi massiv: ');
for i:=1 to n do begin writeln;
for j:=1 to n do write(A[i,j]:8); end;
 
readln;
end.      
Поделиться:

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