Дан целочисленный массив из 30 элементов. Элементы массива могут
принимать целые значения от 0 до 100. Опишите на русском языке или на
одном из языков программирования алгоритм, позволяющий найти
и вывести
произведение элементов массива, которые имеют нечётное значение
и
делятся на 3. Гарантируется, что в исходном массиве есть хотя бы один
элемент, значение которого нечётно
и кратно 3.
Исходные данные объявлены так, как показано ниже. Запрещается
использовать переменные, не описанные ниже, но разрешается не
использовать часть из них. Исходные данные всегда подобраны так, что
результат произведения не выходит за пределы объявленных типов данных.
const
N=30;
var
a: array [1..N] of longint;
i, j, p: longint;
beginfor i := 1to N do
readln(a[i]);
...
end.
В качестве ответа Вам необходимо привести фрагмент программы (или
описание алгоритма на естественном языке), который должен находиться на
месте многоточия. Вы можете записать решение также на другом языке
программирования (укажите название
и используемую версию языка
программирования, например Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные
и
переменные, какие были предложены в условии (например, в образце,
записанном на естественном языке).
Показать разбор
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
p := 1;
for i := 1to N doif (a[i] mod2<>0) and (a[i] mod3=0) then
p := p * a[i];
writeln(p);
Критерии оценки
2 баллаПредложен правильный алгоритм, выдающий верное значение.
Допускается запись алгоритма на другом языке, использующая
аналогичные переменные. В случае, если язык программирования
использует типизированные переменные, описания переменных
должны быть аналогичны описаниям переменных на
естественном языке. Использование нетипизированных или
необъявленных переменных возможно только в случае, если это
допускается языком программирования, при этом количество
переменных и их идентификаторы должны соответствовать
условию задачи. В алгоритме, записанном на языке
программирования, допускается наличие отдельных
синтаксических ошибок, не искажающих замысла автора
программы.
1 баллВ любом варианте решения может присутствовать не более одной
ошибки из числа следующих. 1. Не инициализируется или неверно инициализируется
переменная (например, присваивается начальное
значение, равное 0). 2. Неверно осуществляется проверка на нечётность.
3. На нечётность проверяется не значение элемента, а его
индекс.
4. Неверно осуществляется проверка делимости на 3.
5. На делимость на 3 проверяется не значение элемента, а его
индекс.
6. В сложном условии вместо логической операции «И»
используется логическая операция «ИЛИ».
7. Неверно осуществляется накопление произведения в
цикле (например, ).
8. Отсутствует вывод ответа.
9. Используется переменная, не объявленная в разделе
описания переменных.
10. Не указано или неверно указано условие завершения
цикла.
11. Индексная переменная в цикле не меняется (например,
в цикле while) или меняется неверно.
12. Неверно расставлены операторные скобки.
0 балловОшибок, перечисленных в п. 1–12, две или больше, или алгоритм
сформулирован неверно