Найти количества положительных элементов в массивах A,B,C, а затем - их среднее арифметическое - PascalABC.NET
Формулировка задачи:
Задание к работе:
Ввод исходных данных и их контрольный вывод оформить как процедуры, а обработку - в виде функции или процедуры. Привести как минимум два тестирующих примераА вот и сама задачка:
Найти количества положительных элементов в массивах A,B,C, а затем - их среднее арифметическое Я не могу понять, где у меня ошибкаРешение задачи: «Найти количества положительных элементов в массивах A,B,C, а затем - их среднее арифметическое»
textual
Листинг программы
type mas = array of integer;
procedure InMas (var m:mas; n:integer; mas_name:char);
var i:integer;
begin
writeln('Введите массив ', mas_name, ' из ', n, ' элементов:');
SetLength(m, n);
for i:=0 to n-1 do
m[i] := ReadLnInteger(mas_name + '[' + (i+1).ToString + '] =');
end;
procedure OutMas (m:mas; mas_name:char);
begin
writeln('массив ',mas_name,': ', m);
end;
function Positiv(m:mas):integer;
begin
Result := 0;
foreach var n in m do
if n > 0 then
Result += 1;
end;
function PositivSum(m:mas):integer;
begin
Result := 0;
foreach var n in m do
if n > 0 then
Result += n;
end;
var a,b,c:mas;
begin
InMas (a, 5, 'A'); InMas (b, 5, 'B'); InMas (C, 5, 'C');
var All := 0; var allSum := 0; var Pos := 0;
WriteLn;
OutMas(a, 'A'); Pos := Positiv(a); All += Pos; allSum += PositivSum(a);
WriteLn('Количество положительных элементов: ', Pos);
WriteLn;
OutMas(b, 'B'); Pos := Positiv(b); All += Pos; allSum += PositivSum(b);
WriteLn('Количество положительных элементов: ', Pos);
WriteLn;
OutMas(c, 'C'); Pos := Positiv(c); All += Pos; allSum += PositivSum(c);
WriteLn('Количество положительных элементов: ', Pos);
WriteLn;
WriteLn('Среднее арифметическое положительных элеметов = ', allSum / (All = 0 ? 1 : All));
end.
Объяснение кода листинга программы
- Тип данных
masопределен как массив целых чисел. - Функция
InMasпринимает массив и количество элементов для ввода пользователем. - Функция
OutMasвыводит массив на экран. - Функция
Positivсчитает количество положительных элементов в массиве. - Функция
PositivSumсчитает сумму положительных элементов в массиве. - Объявлены три массива
a,bиcтипаmas. - Вызваны функции
InMasдля заполнения массивовa,bиc. - Объявлены четыре переменные
All,allSum,PosиAllи инициализированы нулем. - Вывод на экран первого массива, подсчет и вывод количества положительных элементов.
- Вывод на экран второго массива, подсчет и вывод количества положительных элементов.
- Вывод на экран третьего массива, подсчет и вывод количества положительных элементов.
- Подсчет и вывод на экран среднего арифметического положительных элементов.