Определить, в какой из 3 матриц среднее арифметическое положительных элементов больше - Free Pascal
Формулировка задачи:
Даны три матрицы: a, b, c размером n m(n,m<=12). Определить в какой из них среднее арифметическое положительных элементов больше.
Program tlen; Uses crt; const nmax=12; mmax=12; type matr=array[1..nmax,1..mmax] of integer; procedure matrix(var a:matr;var n, m:integer); var i, j:integer; begin writeln('введите размер матрицы'); readln(n,m); for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(60)-10; write(a[i,j]:4); end; writeln; end; end; function srednee(a:matr;n,m:integer):real; var i, j:integer; s, k:real; begin s:=0; k:=0; for i:=1 to n do for j:=1 to m do if a[i,j]>0 then begin s:=s+a[i,j]; k:=k+1; end; srednee:=s/k; end; Var a,b,c:matr; na,nb,nc:integer; Begin clrscr; matrix(a,na,'A'); writeln('ср. ариф ',srednee(a,na):0:2); matrix(b,nb,'B'); writeln('ср. ариф ',srednee(b,nb):0:2); matrix(c,nc,'C'); writeln('ср. ариф ',srednee(c,nc):0:2); if (srednee(a,na)>srednee(b,nb)) or (srednee(a,na)>srednee(c,nc)) then writeln('в матрице А ср. ариф. больше') else if (srednee(b,nb)>srednee(a,na)) or (srednee(b,nb)>srednee(c,nc)) then writeln('в матрице Б ср. ариф. больше') else if (srednee(c,nc)>srednee(a,na)) or (srednee(c,nc)>srednee(b,nb)) then writeln('в матрице С ср. ариф. больше'); readln; end.
Решение задачи: «Определить, в какой из 3 матриц среднее арифметическое положительных элементов больше»
textual
Листинг программы
Program tlen; Uses crt; const nmax=12; type matr=array[1..nmax,1..nmax] of integer; procedure matrix(var a:matr;var n, m:integer;c:char); var i, j:integer; begin writeln('Матрица ',c); repeat write('Количество строк от 2 до ',nmax,' n='); readln(n); until n in [2..nmax]; repeat write('Количество столбцов от 2 до ',nmax,' m='); readln(m); until m in [2..nmax]; for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=-10+random(60); write(a[i,j]:4); end; writeln; end; end; function srednee(a:matr;n,m:integer):real; var i, j:integer; s, k:real; begin s:=0; k:=0; for i:=1 to n do for j:=1 to m do if a[i,j]>0 then begin s:=s+a[i,j]; k:=k+1; end; if k=0 then srednee:=0 else srednee:=s/k; end; Var a,b,c:matr; na,ma,nb,mb,nc,mc:integer; s1,s2,s3,mx:real; s:char; Begin clrscr; matrix(a,na,ma,'A'); s1:=srednee(a,na,ma); writeln('среднее арифметичемкое положительных элементов=',s1:0:2); matrix(b,nb,mb,'B'); s2:=srednee(b,nb,mb); writeln('среднее арифметичемкое положительных элементов=',s2:0:2); matrix(c,nc,mc,'C'); s3:=srednee(c,nc,mc); writeln('среднее арифметичемкое положительных элементов=',s3:0:2); if s1>s2 then begin mx:=s1; s:='A'; end else begin mx:=s2; s:='B'; end; if s3>mx then begin mx:=s3; s:='C'; end; writeln('Наибольшее среднее в матрице ',s,' оно=',mx:0:2); readln; end.
Объяснение кода листинга программы
- Программа определяет матрицу как массив целочисленных значений.
- Функция srednee вычисляет среднее арифметическое положительных элементов матрицы.
- В основной части программы создаются три матрицы a, b и c.
- С помощью функции matrix выводятся на экран и заполняются случайными значениями от -10 до 10.
- Затем с помощью функции srednee вычисляется среднее арифметическое положительных элементов каждой матрицы.
- Результат записывается в переменные s1, s2 и s3.
- Сравниваются полученные значения и находится наибольшее среднее значение положительных элементов.
- На экран выводится сообщение о том, в какой из матриц среднее арифметическое положительных элементов больше.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д