Дан целочисленный массив из 20 элементов. Элементы массива могут
принимать целые значения от -10000 до 10000 включительно.
Опишите на
естественном языке или на одном из языков программирования алгоритм,
позволяющий найти и вывести количество пар элементов массива, сумма
которых нечётна и положительна. Под парой подразумевается два подряд
идущих элемента массива.
Исходные данные объявлены так, как показано ниже на примерах для
некоторых языков программирования и естественного языка. Запрещается
использовать переменные, не описанные ниже, но разрешается не
использовать некоторые из описанных переменных.
N = 20DIM A(N) ASINTEGERDIM I, J, K ASINTEGERFOR I = 1TO N
INPUT A(I)
NEXT I
...
END
Показать разбор
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
K = 0FOR I = 1TO N - 1IF (A(I)+A(I+1)) MOD2<>0AND A(I)+A(I+1)>0THEN
K = K + 1ENDIFNEXT
PRINT K
Критерии оценки
2 баллаПредложен правильный алгоритм, выдающий верное значение. Допускается запись алгоритма на другом языке, использующая
аналогичные переменные. В случае, если язык программирования
использует типизированные переменные, описания переменных
должны быть аналогичны описаниям переменных на естественном
языке. Использование нетипизированных или необъявленных
переменных возможно только в случае, если это допускается
языком программирования, при этом количество переменных
и их идентификаторы должны соответствовать условию задачи.
В алгоритме, записанном на языке программирования, допускается
наличие отдельных синтаксических ошибок, не искажающих
замысла автора программы
1 баллНе выполнены условия, позволяющие поставить 2 балла. При этом
предложено в целом верное решение, содержащее не более одной
ошибки из числа следующих: 1. в цикле происходит выход за границу массива (например,
используется цикл от 1 до ); 2. не инициализируется или неверно инициализируется счётчик
количества найденных пар; 3. неверно осуществляется проверка суммы пары элементов на
чётность (в том числе используется выражение вида
a[i]+a[i+1] mod 2<>0 без скобок); 4. на чётность проверяется не сумма значений элементов,
а сумма их индексов; 5. неверно осуществляется проверка суммы пары элементов на
положительность; 6. в сложном логическом условии простые проверки верны, но
условие в целом построено неверно (например, перепутаны
операции «И» и «ИЛИ», неверно расставлены скобки
в логическом выражении); 7. отсутствует вывод ответа; 8. используется переменная, не объявленная в разделе описания
переменных; 9. не указано или неверно указано условие завершения цикла; 10. индексная переменная в цикле не меняется (например, в цикле
while) или меняется неверно; 11. неверно расставлены операторные скобки. Допускается наличие отдельных синтаксических ошибок, не
искажающих замысла автора программы
0 балловНе выполнены условия, позволяющие поставить 1 или 2 балла Например, ошибок, перечисленных в п. 1–11, две или больше, или
алгоритм сформулирован неверно