Определить, в какой из 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.

Объяснение кода листинга программы

  1. Программа определяет матрицу как массив целочисленных значений.
  2. Функция srednee вычисляет среднее арифметическое положительных элементов матрицы.
  3. В основной части программы создаются три матрицы a, b и c.
  4. С помощью функции matrix выводятся на экран и заполняются случайными значениями от -10 до 10.
  5. Затем с помощью функции srednee вычисляется среднее арифметическое положительных элементов каждой матрицы.
  6. Результат записывается в переменные s1, s2 и s3.
  7. Сравниваются полученные значения и находится наибольшее среднее значение положительных элементов.
  8. На экран выводится сообщение о том, в какой из матриц среднее арифметическое положительных элементов больше.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы