Определить, в какой из 3 матриц среднее арифметическое положительных элементов больше - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Даны три матрицы: a, b, c размером n m(n,m<=12). Определить в какой из них среднее арифметическое положительных элементов больше.
Листинг программы
  1. Program tlen;
  2. Uses crt;
  3. const nmax=12;
  4. mmax=12;
  5. type matr=array[1..nmax,1..mmax] of integer;
  6. procedure matrix(var a:matr;var n, m:integer);
  7. var i, j:integer;
  8. begin
  9. writeln('введите размер матрицы');
  10. readln(n,m);
  11. for i:=1 to n do
  12. begin
  13. for j:=1 to m do
  14. begin
  15. a[i,j]:=random(60)-10;
  16. write(a[i,j]:4);
  17. end;
  18. writeln;
  19. end;
  20. end;
  21. function srednee(a:matr;n,m:integer):real;
  22. var i, j:integer;
  23. s, k:real;
  24. begin
  25. s:=0; k:=0;
  26. for i:=1 to n do
  27. for j:=1 to m do
  28. if a[i,j]>0 then
  29. begin
  30. s:=s+a[i,j];
  31. k:=k+1;
  32. end;
  33. srednee:=s/k;
  34. end;
  35. Var a,b,c:matr;
  36. na,nb,nc:integer;
  37. Begin
  38. clrscr;
  39. matrix(a,na,'A');
  40. writeln('ср. ариф ',srednee(a,na):0:2);
  41. matrix(b,nb,'B');
  42. writeln('ср. ариф ',srednee(b,nb):0:2);
  43. matrix(c,nc,'C');
  44. writeln('ср. ариф ',srednee(c,nc):0:2);
  45. if (srednee(a,na)>srednee(b,nb)) or (srednee(a,na)>srednee(c,nc)) then writeln('в матрице А ср. ариф. больше') else
  46. if (srednee(b,nb)>srednee(a,na)) or (srednee(b,nb)>srednee(c,nc)) then writeln('в матрице Б ср. ариф. больше') else
  47. if (srednee(c,nc)>srednee(a,na)) or (srednee(c,nc)>srednee(b,nb)) then writeln('в матрице С ср. ариф. больше');
  48. readln;
  49. end.

Решение задачи: «Определить, в какой из 3 матриц среднее арифметическое положительных элементов больше»

textual
Листинг программы
  1. Program tlen;
  2. Uses crt;
  3. const nmax=12;
  4. type matr=array[1..nmax,1..nmax] of integer;
  5. procedure matrix(var a:matr;var n, m:integer;c:char);
  6. var i, j:integer;
  7. begin
  8. writeln('Матрица ',c);
  9. repeat
  10. write('Количество строк от 2 до ',nmax,' n=');
  11. readln(n);
  12. until n in [2..nmax];
  13. repeat
  14. write('Количество столбцов от 2 до ',nmax,' m=');
  15. readln(m);
  16. until m in [2..nmax];
  17. for i:=1 to n do
  18.  begin
  19.   for j:=1 to m do
  20.   begin
  21.   a[i,j]:=-10+random(60);
  22.   write(a[i,j]:4);
  23.   end;
  24.   writeln;
  25.  end;
  26. end;
  27. function srednee(a:matr;n,m:integer):real;
  28. var i, j:integer;
  29.     s, k:real;
  30. begin
  31. s:=0;
  32. k:=0;
  33. for i:=1 to n do
  34. for j:=1 to m do
  35. if a[i,j]>0 then
  36.  begin
  37.   s:=s+a[i,j];
  38.   k:=k+1;
  39.  end;
  40. if k=0 then srednee:=0
  41. else srednee:=s/k;
  42. end;
  43. Var a,b,c:matr;
  44.     na,ma,nb,mb,nc,mc:integer;
  45.     s1,s2,s3,mx:real;
  46.     s:char;
  47. Begin
  48. clrscr;
  49. matrix(a,na,ma,'A');
  50. s1:=srednee(a,na,ma);
  51. writeln('среднее арифметичемкое положительных элементов=',s1:0:2);
  52. matrix(b,nb,mb,'B');
  53. s2:=srednee(b,nb,mb);
  54. writeln('среднее арифметичемкое положительных элементов=',s2:0:2);
  55. matrix(c,nc,mc,'C');
  56. s3:=srednee(c,nc,mc);
  57. writeln('среднее арифметичемкое положительных элементов=',s3:0:2);
  58. if s1>s2 then
  59.  begin
  60.   mx:=s1;
  61.   s:='A';
  62.  end
  63. else
  64.  begin
  65.   mx:=s2;
  66.   s:='B';
  67.  end;
  68. if s3>mx then
  69.  begin
  70.   mx:=s3;
  71.   s:='C';
  72.  end;
  73. writeln('Наибольшее среднее в матрице ',s,' оно=',mx:0:2);
  74. readln;
  75. end.

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

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

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


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

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

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы