Преобразование массива - Free Pascal

Узнай цену своей работы

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

Разработать алгоритм и программу, позволяющую осуществлять преобразование двумерного массива размером [4×5] по следующей схеме: элементы 1-ой строки расположить в порядке возрастания значений; элементы 2-й строки расположить в порядке убывания значений; строки 3 и 4 поменять местами. Результат представить в виде двух таблиц с исходным и преобразованным массивом. Обеспечить возможность заполнения массива как путем ввода значений с клавиатуры, так и с помощью датчика случайных чисел, а также возможность вывода исходного и преобразованного массивов в текстовый файл.

Решение задачи: «Преобразование массива»

textual
Листинг программы
uses crt;
const n=5;
      m=4;
type mas=array[1..m,1..n] of integer;
procedure inmatrix(var x:mas;m,n:integer);
 var i,j:integer;
begin
 for i:=1 to m do
  for j:=1 to n do
   x[i,j]:=-5+random(21);
end;
procedure print(var x:mas;m,n:integer);
 var i,j:integer;
begin
 for i:=1 to m do
  begin
   for j:=1 to n do
    write(x[i,j]:4);
    writeln;
  end;
end;
procedure sortstr(var x:mas;m,n:integer);
 var i,j,tmp,k:integer;
begin
   for j:=1 to n do
    begin
     tmp:=x[1,j];
     k:=j;
      while (k>1) and (tmp<x[1,k-1]) do
       begin
        x[1,k]:=x[1,k-1];
        dec(k);
       end;
      x[1,k]:=tmp;
    end;
  end;
procedure sorts(var x:mas;m,n:integer);
 var i,j,tmp,k:integer;
begin
   for j:=1 to n do
    begin
     tmp:=x[2,j];
     k:=j;
      while (k>1) and (tmp>x[2,k-1]) do
       begin
        x[2,k]:=x[2,k-1];
        dec(k);
       end;
      x[2,k]:=tmp;
    end;
  end;
procedure swap(var x:mas;m,n:integer);
 var tmp,j:integer;
begin
  for j:=1 to n do
   begin
    tmp:=x[3,j];
    x[3,j]:=x[4,j];
    x[4,j]:=tmp;
   end;
end;
var a:mas;
begin
 clrscr;
  writeln('Матрица :');
  inmatrix(a,m,n);
  print(a,m,n);
  writeln('Новая матрица :');
  sortstr(a,m,n);
  sorts(a,m,n);
  swap(a,m,n);
  print(a,m,n);
 
 readkey;
end.

Объяснение кода листинга программы

  1. В начале кода объявляются константы и переменные:
    • n = 5 - размер матрицы по строкам;
    • m = 4 - размер матрицы по столбцам;
    • mas = array[1..m,1..n] of integer - тип массива, который будет использоваться в процедурах;
    • a - переменная типа mas, которая будет представлять собой матрицу.
  2. Далее идут четыре процедуры:
    • inmatrix - заполняет матрицу a случайными числами от -5 до 0;
    • print - выводит на экран содержимое матрицы a;
    • sortstr - сортирует строки матрицы a по возрастанию;
    • sorts - сортирует столбцы матрицы a по возрастанию.
  3. Последняя процедура swap меняет местами две строки матрицы a.
  4. В основной части программы:
    • создается матрица a;
    • выводится сообщение Матрица : и текущее содержимое матрицы a;
    • вызывается процедура inmatrix для заполнения матрицы a;
    • вызывается процедура print для вывода на экран заполненной матрицы a;
    • выводится сообщение Новая матрица : и матрица a после сортировки строк;
    • вызывается процедура sortstr для сортировки строк матрицы a;
    • вызывается процедура sorts для сортировки столбцов матрицы a;
    • вызывается процедура swap для перестановки строк матрицы a;
    • вызывается процедура print для вывода на экран измененной матрицы a;
    • программа ожидает нажатия клавиши.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.4 из 5
Похожие ответы