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