Разработать программу, которая вводит целочисленную матрицу из n строк и m столбцов (1

Формулировка задачи:

Разработать программу, которая вводит целочисленную матрицу из n строк и m столбцов (1<n<=100, 1<m<=50) и упорядочивает элементы матрицы. Правило упорядочивания: первую половину массива по возрастанию, вторую - по убыванию.

Код к задаче: «Разработать программу, которая вводит целочисленную матрицу из n строк и m столбцов (1<n<=100, 1<m<=50) - Pascal ABC»

textual
const nmax=100;
      mmax=50;
var a:array[1..nmax,1..mmax] of integer;
var n,m,k,i,j,t:integer;
begin
randomize;
repeat
write('Количество строк четное число от 2 до ',nmax,' n=');
readln(n);
until(n in [2..nmax])and(n mod 2=0);
repeat
write('Количество столбцов от 2 до ',mmax,' m=');
readln(m);
until m in [2..mmax];
writeln('Исходная матрица');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    a[i,j]:=random(50);
    write(a[i,j]:3)
   end;
  writeln
 end;
writeln;
k:=n div 2;
for i:=1 to k*m-1 do
for j:=i+1 to k*m do
if a[(i-1) div m+1,(i-1) mod m+1]>a[(j-1) div m+1,(j-1) mod m+1] then
 begin
   t:=a[(i-1) div m+1,(i-1) mod m+1];
   a[(i-1) div m+1,(i-1) mod m+1]:=a[(j-1) div m+1,(j-1) mod m+1];
   a[(j-1) div m+1,(j-1) mod m+1]:=t;
 end;
for i:=1 to k*m-1 do
for j:=i+1 to k*m do
if a[(k*m+i-1) div m+1,(k*m+i-1) mod m+1]<a[(k*m+j-1) div m+1,(k*m+j-1) mod m+1] then
 begin
   t:=a[(k*m+i-1) div m+1,(k*m+i-1) mod m+1];
   a[(k*m+i-1) div m+1,(k*m+i-1) mod m+1]:=a[(k*m+j-1) div m+1,(k*m+j-1) mod m+1];
   a[(k*m+j-1) div m+1,(k*m+j-1) mod m+1]:=t;
 end;
writeln('Отсортированная матрица');
for i:=1 to n do
 begin
  for j:=1 to m do
  write(a[i,j]:3);
  writeln
 end;
end.

15   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ