Задание:
Дан целочисленный массив из 40 элементов, все элементы которого – целые числа в интервале от -500 до 500. Опишите на русском языке или на одном из языков программирования алгоритм, который находит среднее арифметическое всех положительных элементов массива, которые кратны первому элементу (делятся нацело на первый элемент). Гарантируется, что первый элемент массива положительный. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них..
Паскаль:
const N=40;
var a: array [l..N] of integer;
i,x,y: integer;
s: real;
begin
for i:=l to N do readln(a[i]);
...
end.
Решение:
Недостающий фрагмент:
x:=0; y:=0;
for i:= 1 to N do
if (A[i] > 0 ) and (A[i] mod A[1] = 0) then begin
x:=x + A[i];
y:=y+1;
end;
s:=x/y;
writeln(s);
Разбор программы:
* Само задание довольно-таки простое. Среднее арифметическое - это деление общей суммы на общее количество. В нашем случае нужно найти сумму всех положительных элементов, которые делятся на первый элемент массива. А также посчитать сколько таких элементов.
* В переменной X будем считать сумму, в переменной Y - количество. Изначально присваиваем им значение 0, так как это счетчики.
* Запускаем цикл из 40 элементов, в котором последовательно проверяем каждый элемент на два условию: если значение элемента положительное и если значение элемента делится на первый элемент массива без остатка.
* Если оба условия выполняются, к предыдущему значению переменной X прибавляем значение нового найденного элемента. Также увеличиваем количество (Y) на единицу.
* По окончанию цикла в переменную S запоминаем среднее арифметическое(делением суммы на количество).
* Выводим значение переменной S на экран.