Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно.
Опишите на одном из языков программирования алгоритм, который находит количество элементов массива, больших 100 и при этом кратных 5, а затем заменяет каждый такой элемент на число, равное найденному количеству. Гарантируется, что хотя бы один такой элемент в массиве есть.
В качестве результата необходимо вывести измененный массив, каждый элемент массива выводится с новой строчки.
Например, для массива из шести элементов: 4115719525106
программа должна вывести числа 427225106
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
CONST N ASINTEGER = 30DIM A (1TO N) ASLONGDIM I ASLONG,
J ASLONG,
K ASLONGFOR I = 1TO N
INPUT A(I)
NEXT I
...
END
В качестве ответа Вам необходимо привести фрагмент программы, который
должен находиться на месте многоточия. Вы можете записать решение
также на другом языке программирования (укажите название и
используемую версию языка программирования, например Free Pascal 2.6).
В этом случае Вы должны использовать те же самые исходные данные и
переменные, какие были предложены в условии (например, в образце,
записанном на Алгоритмическом языке).
Показать разбор
Содержание верного ответа
(допускаются иные формулировки ответа, не искажающие его смысла)
k := 0;
for i := 1to N doif (a[i] > 100) and (a[i] mod5 = 0) then
k:=k+1;
for i := 1to N dobeginif (a[i] > 100) and (a[i] mod5 = 0) then
a[i] := k;
writeln(a[i])
end
Указания по оцениванию
Общие указания.
В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы.
Эффективность алгоритма не имеет значения и не оценивается.
Допускается запись алгоритма на языке программирования, отличном от языков, приведённых в условии. В этом случае должны использоваться переменные, аналогичные описанным в условии. Если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на Алгоритмическом языке. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования; при этом количество переменных и их идентификаторы должны соответствовать условию задачи.
Допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы.
Допускается формат вывода массива, отличный от указанного, например, в строчку.
Порядок назначения третьего эксперта
В соответствии с Порядком проведения государственной итоговой
аттестации по образовательным программам среднего общего образования
(приказ Минобрнауки России от 26.12.2013 №1400 зарегистрирован
Минюстом России 03.02.2014 №31205)
«61. По результатам первой и второй проверок эксперты независимо
друг от друга выставляют баллы за каждый ответ на задания
экзаменационной работы ЕГЭ с развёрнутым ответом...
62. В случае существенного расхождения в баллах, выставленных
двумя экспертами, назначается третья проверка. Существенное расхождение
в баллах определено в критериях оценивания по соответствующему
учебному предмету.
Эксперту, осуществляющему третью проверку,
предоставляется информация о баллах, выставленных экспертами, ранее
проверявшими экзаменационную работу».
Если расхождение составляет 2 или более балла за выполнение любого
из заданий, то третий эксперт проверяет ответы только на те задания,
которые вызвали столь существенное расхождение.
Критерии оценки
2 баллаПредложен правильный алгоритм, выдающий в качестве результата
верное значение
1 баллНе выполнены условия, позволяющие поставить 2 балла. При этом
предложено в целом верное решение, содержащее не более одной
ошибки из числа следующих: 1. в цикле происходит выход за границу массива; 2. не инициализируется или неверно инициализируется
количество найденных элементов; 3. неверно осуществляется проверка делимости на 5; 4. проверяется делимость на 5 не элемента массива, а его
индекса; 5. неверно осуществляется сравнение с 100 (например,
используется знак "больше или равно"); 6. сравнение с 100 производится для индекса массива, а не для его значения; 7. неверно составлено логическое условие (например,
используется or вместо and); 8. не вычисляется или неверно вычисляется количество
найденных элементов; 9. исходный массив не изменяется; 10. отсутствует вывод ответа или ответ выводится не полностью (например, только один элемент массива ввиду пропущенного цикла вывода элементов или операторных скобок); 11. используется переменная, не объявленная в разделе описания
переменных; 12. не указано или неверно указано условие завершения цикла; 13. индексная переменная в цикле не меняется (например, в цикле
while) или меняется неверно.
0 балловОшибок, перечисленных в п. 1–13, две или больше, или алгоритм
сформулирован неверно(в том числе при отсутствии в явном или
неявном виде цикла подсчёта количества нужных элементов)