Найти количества положительных элементов в массивах A,B,C, а затем - их среднее арифметическое - PascalABC.NET

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

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

Задание к работе:

Ввод исходных данных и их контрольный вывод оформить как процедуры, а обработку - в виде функции или процедуры. Привести как минимум два тестирующих примера

А вот и сама задачка:

Найти количества положительных элементов в массивах A,B,C, а затем - их среднее арифметическое Я не могу понять, где у меня ошибка
Листинг программы
  1. var i , n , sum: integer;
  2. sr : real;
  3. //----------------------------------------------------
  4. procedure work (r:integer; var s:integer; var s1:real);
  5. var mas : array [1..5] of integer ;
  6. j : integer;
  7. begin
  8. s:=0;
  9. for j:=1 to r do begin
  10. write(' Введите элемент - ', j,': ') ;
  11. read (mas[j]);
  12. for j:=1 to N do
  13. if mas[j]>0 then Inc(k1);
  14. end;end;
  15. //-----------------------------------
  16. begin
  17. for i:=1 to 3 do begin
  18. write ('Введите размер ',i, ' массива: ');
  19. readln(n);
  20. work (n, sum, sr);
  21. writeln ('Положительные = ',k1);
  22. writeln ('Среднее арифмитическое = ',sr);
  23. end;end.

Решение задачи: «Найти количества положительных элементов в массивах A,B,C, а затем - их среднее арифметическое»

textual
Листинг программы
  1. type mas = array of integer;
  2.  
  3. procedure InMas (var m:mas; n:integer; mas_name:char);
  4. var i:integer;
  5. begin
  6.   writeln('Введите массив ', mas_name, ' из ', n, ' элементов:');
  7.   SetLength(m, n);
  8.   for i:=0 to n-1 do
  9.     m[i] := ReadLnInteger(mas_name + '[' + (i+1).ToString + '] =');
  10. end;
  11.  
  12. procedure OutMas (m:mas; mas_name:char);
  13. begin
  14.   writeln('массив ',mas_name,': ', m);
  15. end;
  16.  
  17. function Positiv(m:mas):integer;
  18. begin
  19.   Result := 0;
  20.   foreach var n in m do
  21.     if n > 0 then
  22.       Result += 1;
  23. end;
  24.  
  25. function PositivSum(m:mas):integer;
  26. begin
  27.   Result := 0;
  28.   foreach var n in m do
  29.     if n > 0 then
  30.       Result += n;
  31. end;
  32.  
  33. var a,b,c:mas;
  34. begin
  35.   InMas (a, 5, 'A'); InMas (b, 5, 'B'); InMas (C, 5, 'C');
  36.  
  37.   var All := 0; var allSum := 0; var Pos := 0;
  38.  
  39.   WriteLn;
  40.   OutMas(a, 'A'); Pos := Positiv(a); All += Pos; allSum += PositivSum(a);
  41.   WriteLn('Количество положительных элементов: ', Pos);
  42.  
  43.   WriteLn;
  44.   OutMas(b, 'B'); Pos := Positiv(b); All += Pos; allSum += PositivSum(b);
  45.   WriteLn('Количество положительных элементов: ', Pos);
  46.  
  47.   WriteLn;
  48.   OutMas(c, 'C'); Pos := Positiv(c); All += Pos; allSum += PositivSum(c);
  49.   WriteLn('Количество положительных элементов: ', Pos);
  50.  
  51.   WriteLn;
  52.   WriteLn('Среднее арифметическое положительных элеметов = ', allSum / (All = 0 ? 1 : All));
  53. end.

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

  1. Тип данных mas определен как массив целых чисел.
  2. Функция InMas принимает массив и количество элементов для ввода пользователем.
  3. Функция OutMas выводит массив на экран.
  4. Функция Positiv считает количество положительных элементов в массиве.
  5. Функция PositivSum считает сумму положительных элементов в массиве.
  6. Объявлены три массива a, b и c типа mas.
  7. Вызваны функции InMas для заполнения массивов a, b и c.
  8. Объявлены четыре переменные All, allSum, Pos и All и инициализированы нулем.
  9. Вывод на экран первого массива, подсчет и вывод количества положительных элементов.
  10. Вывод на экран второго массива, подсчет и вывод количества положительных элементов.
  11. Вывод на экран третьего массива, подсчет и вывод количества положительных элементов.
  12. Подсчет и вывод на экран среднего арифметического положительных элементов.

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


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

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

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

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

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

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