Упорядочить по убыванию максимальные элементы матриц - Pascal
Формулировка задачи:
Даны три матрицы А, B, С Упорядочить по убыванию три числа х, у, z, где х - максимальный элемент матрицы А, в - максимальный элемент матрицы В, z - максимальный элемент матрицы С. Поиск максимального элемента матрицы оформить в виде процедуры.
Решение задачи: «Упорядочить по убыванию максимальные элементы матриц»
textual
Листинг программы
program pr;
type
arr = array [1..100, 1..100] of integer;
var
a, b, c: arr;
m, n, x, y, z, t: integer;
procedure fillshow(var v: arr; n: integer; m: integer);
var
i, j: integer;
begin
randomize;
for i := 1 to n do
for j := 1 to m do
v[i, j] := random(21)-10;
for i := 1 to n do
begin
for j := 1 to m do
write(v[i, j]:3);
writeln;
end;
end;
procedure find(var v: arr; var av: integer);
var
i, j, max, index: integer;
begin
max := v[1, 1];
for i := 1 to n do
for j := 1 to m do
if v[i, j] >= max then
begin
max := v[i, j];
index := i;
end;
av := max;
end;
begin
writeln('Введите количество строк матрицы A');
readln(n);
writeln('Введите количество столбцов матрицы A');
readln(m);
fillshow(a, n, m);
find(a, x);
writeln;
writeln('Введите количество строк матрицы B');
readln(n);
writeln('Введите количество столбцов матрицы B');
readln(m);
fillshow(b, n, m);
find(b, y);
writeln;
writeln('Введите количество строк матрицы C');
readln(n);
writeln('Введите количество столбцов матрицы C');
readln(m);
writeln;
fillshow(c, n, m);
find(c, z);
writeln;
if (x < y) then
begin
t := x;
x := y;
y := t;
end;
if (y < z) then
begin
t := y;
y := z;
z := t;
end;
if (x < y) then
begin
t := x;
x := y;
y := t;
end;
writeln(x, ' ', y, ' ', z)
end.
Объяснение кода листинга программы
- Объявляются тип данных и переменные:
- Тип данных
arrдля хранения двумерных массивов размером 100x100 с элементами типаinteger. - Три массива
a,b,cтипаarrдля хранения матриц. - Переменные
m,n,x,y,z,tтипаintegerдля хранения различных значений.
- Тип данных
- Описывается процедура
fillshow, которая заполняет переданный массив случайными числами и выводит его содержимое на экран. - Описывается процедура
find, которая находит максимальный элемент в матрице и возвращает его значение через параметрav. - В основной программе происходит следующее:
- Запрашивается у пользователя количество строк и столбцов для матрицы
A. - Матрица
Aзаполняется случайными числами и выводится на экран. - Вызывается процедура
findдля матрицыAи найденное значение максимального элемента сохраняется в переменнойx. - Повторяются те же действия для матриц
BиC, соответственно найденные максимальные значения сохраняются в переменныхyиz.
- Запрашивается у пользователя количество строк и столбцов для матрицы
- Производится сравнение найденных максимальных значений и их перестановка в случае необходимости, чтобы получить их в порядке убывания.
- На экран выводятся значения переменных
x,y,z.