Предложен правильный алгоритм, выдающий верное значение. Допускается
Условие
Критерии оценивания выполнения задания | Баллы | Предложен правильный алгоритм, выдающий верное значение. Допускается запись алгоритма на другом языке, использующая аналогичные переменные. В случае, если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на естественном языке. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования, при этом количество переменных и их идентификаторы должны соответствовать условию задачи. В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы. | 2 | Не выполнены условия, позволяющие поставить 2 балла.Предложено в целом верное решение, содержащее не более одной ошибки из числа следующих (если одинаковая ошибка повторяется несколько раз, она считается за одну ошибку).1) Отсутствие инициализации или неверная инициализация одной или нескольких переменных (например, инициализация максимума первым элементом массива).2) Ошибка в сравнениях, в результате которой выводится минимум вместо максимума или рассматриваются впадинывместо пиков.3) Выход за границы массива (например, в перебор включены крайние элементы и проверяются их несуществующие соседи).4) Отсутствует вывод ответа.5) Используется переменная, не объявленная в разделе описания переменных.6) Индексная переменная в цикле не меняется (например, в цикле while) или меняется неверно. | 1 | Не выполнены условия, позволяющие поставить 1 или 2 балла. | 0 | Максимальный балл | 2 |
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Чтобы получить ответ за один просмотр всех элементов массива, необходимо подсчитать суммы чётных и нечётных элементов, а также определить максимум, после чего выбрать нужную сумму в зависимости от чётности максимума.Допустимо и двухпроходное решение: на первом проходе определяется максимум, а на втором вычисляется нужная сумма. Ниже продемонстрированы оба способа решения. Пример правильной программы на языке Паскаль (способ 1)s:=0; p:=0;m:=a[1];for i:=1 to N do begin if a[i]>m then m:=a[i]; if a[i] mod 2 = 0 then s := s + a[i] else p := p + a[i];end;if m mod 2 = 0 then writeln(s) else writeln(p) Пример правильной программы на языке Паскаль (способ 2)m:=a[1];for i:=2 to N do begin if a[i]>m then m:=a[i]end;s:=0;for i:=1 to N do begin if abs(a[i] mod
Осталось ещё 1 шаг
Шаг 2
Бесплатно · займёт минуту