Дан целочисленный массив из 30 элементов. Элементы массива могут
принимать значения от 0 до 1000. Опишите на русском языке или на одном
из языков программирования алгоритм, который позволяет подсчитать и
вывести среднее арифметическое элементов массива, имеющих нечетное
значение. Гарантируется, что в исходном массиве хотя бы один элемент
имеет нечетное значение.
Исходные данные объявлены так, как показано ниже. Запрещается
использовать переменные, не описанные ниже, но разрешается не
использовать часть из них.
const
N=30;
var
a: array [1..N] of integer;
i, x, y: integer;
s: real;
beginfor i:=1to N do readln(a[i]);
...
end.
В качестве ответа Вам необходимо привести фрагмент программы (или
описание алгоритма на естественном языке), который должен находиться на
месте многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка
программирования, например, Borland Pascal 7.0) или в виде
блок-схемы. В этом случае вы должны использовать переменные,
аналогичные переменным, используемым в алгоритме, записанном на
естественном языке, с учетом синтаксиса и особенностей используемого
вами языка программирования.
Показать разбор
Содержание верного ответа
(допускаются иные формулировки ответа, не искажающие его смысл)
x:=0;
y:=0;
for i:=1to N doif (a[i] mod2=1) thenbegin
x:=x+a[i];
y:=y+1;
end;
s:=x/y;
writeln(s);
Критерии оценки
2 баллаПредложен правильный алгоритм, выдающий верное значение.
Допускается запись алгоритма на другом языке, использующая
аналогичные переменные. В случае, если язык
программирования использует типизированные переменные,
описания переменных должны быть аналогичны описаниям
переменных на естественном языке. Использование
нетипизированных или необъявленных переменных возможно
только в случае, если это допускается языком
программирования, при этом количество переменных
и их
идентификаторы должны соответствовать условию задачи. В
алгоритме, записанном на языке программирования,
допускается наличие отдельных синтаксических ошибок, не
искажающих замысла автора программы.
1 баллВ любом варианте решения присутствует не более одной
ошибки из числа следующих: 1. Значения переменных
и находятся верно, однако
среднее арифметическое считается неверно (например,
производится действие или неверно происходит
преобразование типов при делении). 2. Неверно осуществляется проверка значения элемента
массива на нечетность. 3. Не инициализируются или неверно инициализируются
переменные
и 4. Отсутствует вывод ответа. 5. Используется переменная, не объявленная в разделе
описания переменных. 6. Не указано или неверно указано условие завершения
цикла. 7. Индексная переменная в цикле не меняется (например, в
цикле while). 8. Неверно расставлены операторные скобки.
0 балловОшибок, перечисленных в п. 1–8, две или больше, или алгоритм
сформулирован неверно.