Определить максимальный и второй по величине элементы в каждом столбце матрицы - Turbo Pascal
Формулировка задачи:
Программа должна определять максимальный и второй по величине элементы в каждом столбце массива A(3,5) и менять их местами, но правильно меняется только первый столбец.
Решение задачи: «Определить максимальный и второй по величине элементы в каждом столбце матрицы»
textual
Листинг программы
uses crt;
const
n = 3;
m = 5;
var
a: array[1..n, 1..m] of integer;
i, j, k, maxiRow, miniRow, maxiCol, miniCol: integer;
procedure print(s: string);
var
i, j: integer;
begin
writeln(s);
for i := 1 to n do
begin
for j := 1 to m do write(a[i, j]:5);
writeln;
end;
end;
begin
randomize;
for i := 1 to n do for j := 1 to m do a[i, j] := random(100);
print('исходная матрица:*');
miniRow := 1;
miniCol := 1;
maxiRow := 1;
maxiCol := 1;
for i := 1 to n do
begin
for j := 1 to m do
begin
if a[miniRow, miniCol] > a[i, j] then
begin
miniRow := i;miniCol := j;
end;
if a[maxiRow, maxiCol] < a[i, j] then
begin
maxiRow := i;maxiCol := j;
end;
end;
end;
for i := 1 to n do
begin
k := a[i, miniCol];
a[i, miniCol] := a[i, maxiCol];
a[i, maxiCol] := k;
end;
print('полученная матрица:');
end.
Объяснение кода листинга программы
В данном коде используется язык программирования Turbo Pascal. Он предназначен для работы с матрицами и определения максимальных и вторых по величине элементов в каждом столбце. Переменные:
- n - количество строк матрицы (в данном случае равно 3);
- m - количество столбцов матрицы (в данном случае равно 5);
- a - матрица, в которой будут находиться числа от 0 до 99;
- i, j, k - переменные для перебора строк и столбцов матрицы;
- maxiRow, miniRow, maxiCol, miniCol - переменные для хранения текущих максимумов и минимумов в каждой строке и столбце соответственно;
- print - функция для вывода содержимого матрицы на экран.
Код начинается с инициализации переменной
aслучайными числами от 0 до 99. Затем выводится исходная матрица. Далее происходит поиск минимального и максимального элемента в каждой строке и столбце. Для этого используются циклыforи переменнойkприсваиваются значения изa. После этого выводится полученная матрица, в которой найденные максимальные элементы заменены на их исходные значения. В конце кода выводится сообщение с помощью функцииprint, содержащее исходную матрицу.