Найти все самые нижние максимальные элементы по столбцам матрицы - PascalABC.NET
Формулировка задачи:
Дана матрица размерностью NM, состоящая из натуральных чисел. Найти все
самые нижние максимальные элементы по столбцам и вывести их значение и
местоположение на экран (оформить в виде процедуры). Вычислить среднее
арифметическое элементов нижней строки (оформить в виде функции). Записать в
текстовый файл элементы нижней строки
Решение задачи: «Найти все самые нижние максимальные элементы по столбцам матрицы»
textual
Листинг программы
- type mtr=array[,]of integer;
- procedure max(a:mtr;n,m:integer);
- var i,j,mx,imx:integer;
- begin
- writeln('Последние максимальные столбцов');
- for j:=0 to m-1 do
- begin
- mx:=a[0,j];
- imx:=1;
- for i:=0 to n-1 do
- if a[i,j]>=mx then
- begin
- mx:=a[i,j];
- imx:=i+1;
- end;
- writeln('положение=[',imx,',',j+1,'] значение=',mx);
- end;
- end;
- function sred(a:mtr;n,m:integer):real;
- var j:integer;
- begin
- result:=0;
- for j:=0 to m-1 do
- result:=result+a[n-1,j];
- result:=result/m;
- end;
- var a:mtr;
- m,n,i,j:integer;
- f:text;
- begin
- randomize;
- writeln('Введите размеры матрицы');
- readln(n,m);
- setlength(a,n,m);
- for i:=0 to n-1 do
- begin
- for j:=0 to m-1 do
- begin
- a[i,j]:=random(6);
- write(a[i,j]:3);
- end;
- writeln;
- end;
- max(a,n,m);
- writeln('Среднее арифметическое последней строки=',sred(a,n,m):0:2);
- assign(f,'stroka.txt');
- rewrite(f);
- for j:=0 to m-1 do
- write(f,a[n-1,j]:3);
- writeln('Последняя строка матрицы записана в файл stroka.txt');
- close(f);
- end.
Объяснение кода листинга программы
- Тип переменной
mtr
объявлен как массивarray[,]of integer
, который представляет собой двумерный массив целых чисел. - В процедуре
max
перебираются все элементы матрицы, начиная с первого столбца, и ищутся максимальные значения в каждом столбце. - Переменная
mx
инициализируется значением первого элемента первого столбца, а переменнаяimx
инициализируется значением 1. - Переменная
imx
хранит позицию последнего найденного максимального элемента. - Переменная
mx
обновляется, если текущий элемент больше текущего максимального значения. - Переменная
imx
обновляется, если текущий элемент имеет большее максимальное значение. - После завершения цикла, выводится сообщение с положением и значением последнего максимального элемента.
- В функции
sred
перебираются все элементы последнего столбца матрицы и суммируются. - Результат делится на количество элементов, чтобы получить среднее арифметическое.
- Переменная
f
объявлена как текстовый файл, который будет использоваться для записи последней строки матрицы. - В цикле перебираются все элементы последнего столбца матрицы и записываются в файл.
- После завершения цикла, выводится сообщение о том, что последняя строка матрицы записана в файл
stroka.txt
. - Файл
f
закрывается с помощью функцииclose
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д