Определить, в какой из 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.
- Сравниваются полученные значения и находится наибольшее среднее значение положительных элементов.
- На экран выводится сообщение о том, в какой из матриц среднее арифметическое положительных элементов больше.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д