Среднее арифметическое наибольшего и наименьшего значений элементов матрицы ниже главной диагонали - Turbo Pascal
Формулировка задачи:
Пусть дана вещественная матрица размером n*m. Найдите среднее арифметическое наибольшего и наименьшего значений её элементов, расположенных ниже главной диагонали.- это условие.
Напиши пожалуйста программу!
Решение задачи: «Среднее арифметическое наибольшего и наименьшего значений элементов матрицы ниже главной диагонали»
textual
Листинг программы
uses crt;
const nmax=15;
var a:array[1..nmax,1..nmax] of real;
m,n,i,j,x:byte;
mn,mx:real;
begin
clrscr;
randomize;
repeat
write('Количество строк от 2 до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество столбцов от 2 до до ',nmax,' m=');
readln(m);
until m in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=9*random;
write(a[i,j]:5:2);
end;
writeln;
end;
mn:=a[2,1];
mx:=a[2,1];
if n>m then x:=m else x:=n;
for i:=2 to x do
for j:=1 to i-1 do
begin
if a[i,j]<mn then mn:=a[i,j];
if a[i,j]>mx then mx:=a[i,j];
end;
writeln('Минимальное значение ниже главной диагонали=',mn:0:2);
writeln('Максимальное значение ниже главной диагонали=',mx:0:2);
writeln('Их среднее=',(mn+mx)/2:0:2);
readln
end.
Объяснение кода листинга программы
- Создается переменная
nmaxи присваивается ей значение 15. - Создается переменная
aтипаarray[1..nmax,1..nmax] of real;. - Создаются три переменные
m,nиiтипаbyte. - Создаются две переменные
mnиmxтипаreal. - Выполняется цикл
repeat, который запрашивает у пользователя количество строк и столбцов матрицы. - Внутри цикла
repeatвыводится сообщение с запрошенными значениями. - Вычисляются минимальное и максимальное значения матрицы.
- Выводится сообщение с найденными значениями.
- Вычисляется среднее арифметическое из минимального и максимального значений.
- Выводится сообщение с найденным значением среднего арифметического.
- Выполняется цикл
readln, чтобы дождаться ввода пользователя.