Преобразование массива - 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;
- программа ожидает нажатия клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д