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

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

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

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

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

textual
Листинг программы
  1. uses crt;
  2. const n=5;
  3.       m=4;
  4. type mas=array[1..m,1..n] of integer;
  5. procedure inmatrix(var x:mas;m,n:integer);
  6.  var i,j:integer;
  7. begin
  8.  for i:=1 to m do
  9.   for j:=1 to n do
  10.    x[i,j]:=-5+random(21);
  11. end;
  12. procedure print(var x:mas;m,n:integer);
  13.  var i,j:integer;
  14. begin
  15.  for i:=1 to m do
  16.   begin
  17.    for j:=1 to n do
  18.     write(x[i,j]:4);
  19.     writeln;
  20.   end;
  21. end;
  22. procedure sortstr(var x:mas;m,n:integer);
  23.  var i,j,tmp,k:integer;
  24. begin
  25.    for j:=1 to n do
  26.     begin
  27.      tmp:=x[1,j];
  28.      k:=j;
  29.       while (k>1) and (tmp<x[1,k-1]) do
  30.        begin
  31.         x[1,k]:=x[1,k-1];
  32.         dec(k);
  33.        end;
  34.       x[1,k]:=tmp;
  35.     end;
  36.   end;
  37. procedure sorts(var x:mas;m,n:integer);
  38.  var i,j,tmp,k:integer;
  39. begin
  40.    for j:=1 to n do
  41.     begin
  42.      tmp:=x[2,j];
  43.      k:=j;
  44.       while (k>1) and (tmp>x[2,k-1]) do
  45.        begin
  46.         x[2,k]:=x[2,k-1];
  47.         dec(k);
  48.        end;
  49.       x[2,k]:=tmp;
  50.     end;
  51.   end;
  52. procedure swap(var x:mas;m,n:integer);
  53.  var tmp,j:integer;
  54. begin
  55.   for j:=1 to n do
  56.    begin
  57.     tmp:=x[3,j];
  58.     x[3,j]:=x[4,j];
  59.     x[4,j]:=tmp;
  60.    end;
  61. end;
  62. var a:mas;
  63. begin
  64.  clrscr;
  65.   writeln('Матрица :');
  66.   inmatrix(a,m,n);
  67.   print(a,m,n);
  68.   writeln('Новая матрица :');
  69.   sortstr(a,m,n);
  70.   sorts(a,m,n);
  71.   swap(a,m,n);
  72.   print(a,m,n);
  73.  
  74.  readkey;
  75. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы