Определить максимальный и второй по величине элементы в каждом столбце матрицы - Turbo Pascal
Формулировка задачи:
Программа должна определять максимальный и второй по величине элементы в каждом столбце массива A(3,5) и менять их местами, но правильно меняется только первый столбец.
Листинг программы
- uses crt;
- const
- n=3;
- m=5;
- var
- a:array[1..n,1..m] of integer;
- i,j,k,maxi,mini: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 ('исходная матрица:*');
- for j:=1 to m do begin
- mini:=1;
- maxi:=1;
- for i:=1 to n do begin
- if a[mini,j]>a[i,j] then mini:=i;
- if a[maxi,j]<a[i,j] then maxi:=i;
- end;
- k:=a[mini,j];
- a[mini,j]:=a[maxi,j];
- a[maxi,j]:=k;
- end;
- print ('полученная матрица:');
- end.
Решение задачи: «Определить максимальный и второй по величине элементы в каждом столбце матрицы»
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
, содержащее исходную матрицу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д