Дан массив X(5*N) (т.е количество элементов массива кратно пяти). Разбить массив на пять частей и в каждой части поменять местами наибольший элемент с наименьшим — Pascal(Паскаль)

uses crt;
var
b,c,d,e,max,min,z,i2,i3,i1,i,stolb,strok,maxs,maxt,mint,mins:integer;
a,bo                                            :array[1..100,1..100] of integer;
begin
randomize;
clrscr;
writeln('Введите число элементов(должно быть кратно 5)');
readln(b);
if b mod 5 <> 0 then
                repeat
                clrscr;
                writeln('вы ввели число не кратное 5, повторите ввод');
                readln(b);
                until b mod 5 =0;
writeln('Введите число столбцов\строк соответственно');
readln(stolb,strok);
if (stolb*strok) mod 5 <> 0 then
                repeat
                clrscr;
                writeln('вы ввели не коректное число строк\столбцов, повторите ввод');
                readln(stolb,strok);
                until (stolb*strok) mod 5 =0;
writeln('Заполните матрицу ',strok,'*',stolb,'(Строки\столбцы)');
for i1:=1 to strok do
for i2:=1 to stolb do begin readln(a[i1,i2]); bo[i1,i2]:=a[i1,i2] end;
for i1:=1 to strok do begin
for i2:=1 to stolb do
write(a[i1,i2]:3);
writeln;
end;
readln;
for d:=1 to b do
for c:=1 to b do begin
for i1:=1 to strok do
for i2:=1 to stolb do begin  a[i1,i2]:=bo[i1,i2] end;
 
if ((c*d) mod 5=0) and ((c*d)<=b) and (c<=stolb) and (d<=strok) then begin
           max:=a[1,1];
           min:=a[1,1];
           maxs:=1;
           maxt:=1;
           mins:=1;
           mint:=1;
           for i:=1 to d do
           for z:=1 to c do
           if max>a[i,z] then begin
                               min:=a[i,z];
                               mins:=i;
                               mint:=z;
                               end
           else begin
           max:=a[i,z];
           maxs:=i;
           maxt:=z;
           end;
           a[maxs,maxt]:=min;
           a[mins,mint]:=max;
 for i1:=1 to d do begin
   for i2:=1 to c do
   write(a[i1,i2]:3);
   writeln;
   end;
   writeln;
   readln;
                                      end;
end;
end.

Leave a Comment

+ 56 = 64