Среднее арифметическое положительных элементов матрицы - Pascal (80500)

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

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

В данном программе считается среднее арифметическое положительных элементов матрицы. Помогите найти ошибку,дело в том что отбираются все положительные элементы,но делятся они не на количество положительных а на количество всех елементов матрицы,включая негативных.Собвственно как сделать что-бы делилось тоже только на количество положительных элементов?
Листинг программы
  1. Program v21;
  2. const MAX = 12;
  3. type
  4. TRange = 1..MAX;
  5. TArray = Array[TRange, TRange] Of ShortInt;
  6. function FAVR(const S: TArray; const n, m: TRange): Real;
  7. var i, j: TRange;
  8. begin
  9. Result := 0;
  10. for i := 1 to n do
  11. for j := 1 to m do
  12. if (S[i, j] > 0)
  13. then
  14. Result := Result + S[i, j];
  15. Result := Result / n / m;
  16. end;
  17. procedure PAVR(const S: TArray; const n, m: TRange; var Result: Real);
  18. var
  19. i, j: TRange;
  20. begin
  21. Result := 0;
  22. for i := 1 to n do
  23. for j := 1 to m do
  24. Result := Result + S[i, j];
  25. Result := Result / n / m;
  26. end;
  27. var
  28. S: TArray;
  29. i, j, n, m: TRange;
  30. res: Real;
  31. begin
  32. Write('Introduceti lungimea tabloului:'); ReadLn(n);
  33. Write('Introduceti latimea tabloului:'); ReadLn(m);
  34. Randomize;
  35. for i := 1 to n do
  36. begin
  37. for j := 1 to m do
  38. begin
  39. S[i, j] := Random(199) - 99;
  40. Write(S[i, j]:4);
  41. end;
  42. WriteLn;
  43. end;
  44. WriteLn('Media elementelor pozitive din tablou este ', FAVR(S, n, m):0:2);
  45. end.
Простите,я случайно не там где надо создал тему...

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

textual
Листинг программы
  1. function FAVR(const S: TArray; const n, m: TRange): Real;
  2. var  i, j: TRange;
  3. k:integer;
  4. begin
  5.     Result := 0;
  6.     for i := 1 to n do
  7.         for j := 1 to m do
  8.             if (S[i, j] > 0)
  9.             then
  10.                begin
  11.                 inc(k);
  12.                 Result := Result + S[i, j];
  13.                end;
  14.     Result := Result /k;
  15. end;

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

  1. function FAVR(const S: TArray; const n, m: TRange): Real;
    • Это объявление функции FAVR. Функция принимает в качестве аргументов массив S, и два числа n и m.
  2. var i, j: TRange; k: integer;
    • Здесь объявляются переменные i, j как TRange и переменная k как integer.
  3. begin
    • Начало основного блока кода.
  4. Result := 0;
    • Присваиваем переменной Result значение 0.
  5. for i := 1 to n do for j := 1 to m do
    • Цикл for от 1 до n для i и от 1 до m для j.
  6. if (S[i, j] > 0)
    • Проверка, если элемент массива S[i, j] больше нуля.
  7. then
    • Если условие true, выполняем следующий блок.
  8. begin
    • Начало блока кода.
  9. inc(k);
    • Увеличиваем значение переменной k на 1.
  10. Result := Result + S[i, j];
    • Добавляем значение S[i, j] к переменной Result.
  11. end;
    • Конец блока кода.
  12. Result := Result /k;
    • Результат делится на k.
  13. end;
    • Конец функции. Данный код выполняет вычисление среднего арифметического положительных элементов матрицы, переданной в массиве S.

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


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

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

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

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

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

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