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