Найти наибольший чётный положительный элемент выше главной диагонали и наименьший отрицательный элемент ниже главной диагонали с указанием их индексов
Категория: Delphi/Pascal
2012-03-05 23:15:38
Дан двумерный массив. Найти наибольший чётный положительный элемент выше главной диагонали и наименьший отрицательный элемент ниже главной диагонали с указанием их индексов. Создать новый массив, в котором найденный элементы поменяются местами
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.
Поделиться: