27 (в 2015 - 27, в 2014 - С4) Решение и комментарии
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Программа читает обучающий блок и запоминает написание чисел и их значения. Допускается (как в приведенных ниже решениях на Паскале и Бейсике) построение полного «словаря» всех чисел от 1 до 99 или хранение только исходного обучающего блока (как в приведенном ниже втором варианте решения на Паскале).
Затем программа читает входные строки, не запоминая их в массиве. Если построен полный «словарь», прочитанная строка ищется в этом словаре как единое целое, если «словаря» нет, строка разбивается на слова (в подходящей строке их может быть не более двух), каждое слово ищется в данных обучающего блока. Числовое значение введенной строки равно сумме значений составляющих слов. Если какое-то из слов (или вся строка при поиске в полном «словаре») отсутствует в обучающих данных, введенное число не попадает в интервал от 1 до 99 и не должно учитываться. Дополнительная проверка вхождения числа в заданный интервал не нужна, так как все числа, которые удается распознать с помощью приведенного обучающего блока, автоматически в него попадают, но за наличие такой дополнительной проверки в программе оценка не снижается.
Ниже приведен пример решения на Алгоритмическом языке.
Задачи такого типа допускают более короткие решения с использованием языков, в которых есть возможность использования ассоциативных массивов (массивов, в которых индексами служат строки, а не числа). Такие решения допускаются, они оцениваются на общих основаниях с учетом правил и особенностей выбранного учеником языка.
Допускаются решения, записанные на других языках программирования.
Решение на Алгоритмическом языке можно скачать здесь
Указания по оцениванию
Оценка 4 балла:
Программа правильно работает для любых входных данных произвольного размера и находит ответ, не сохраняя входные данные в массиве. Допускается наличие в тексте программы одной синтаксической ошибки: пропущен или неверно указан знак пунктуации, неверно написано или пропущено зарезервированное слово языка программирования, не описана или неверно описана переменная, применяется операция, недопустимая для соответствующего типа данных (если одна и та же ошибка встречается несколько раз, то это считается за одну ошибку).
Оценка 3 балла:
Программа работает верно, но размер используемой памяти зависит от длины используемой последовательности. Например, входные данные запоминаются в массиве или другой структуре данных (например, контейнер priority_queue, set или map в С++), размер которого соответствует числу N.
Допускается наличие от одной до трех синтаксических ошибок. Возможно, в принципиально верно организованном вводе данных есть ошибка, например, неверно выстроен порядок элементов в обучающем блоке (10 раньше 11).
Оценка 2 балла:
Программа работает в целом верно, эффективно или нет, но, в реализации алгоритма содержатся ошибки. Например, неверно организовано разбиение строки на слова.
Допускается наличие от одной до пяти синтаксических ошибок, описанных выше.
Оценка 1 балл:
Программа работает в отдельных частных случаях, например, обрабатывает только числа, состоящие из одного слова. Допускается наличие от одной до пяти синтаксических ошибок, описанных выше
4 комментария
по-моему есть ошибка в последней конструкции
если j<100 и mod(j, 2)=0 то
количество:=количество+j
все
Здесь вместо j должно быть 1
Извини, не понял: к какой странице это замечание?
Поясни, пож.
Уже нет:) Это правила 2012 г. В демо-версии 2014 г. указано, что 4 балла можно ставить, если есть не более трех синтаксических ошибок.
См.http://ege-go.ru/wp-content/uploads/2011/11/%D0%98%D0%9D%D0%A4_%D0%94%D0%95%D0%9C%D0%9E-2014.pdf
Извини, что раньше не поправили.
А если моя программа правильно работает для любых входных данных произвольного размера и находит ответ, не сохраняя входные данные в массиве, но более одной синтаксической ошибки, то это уже 3 балла?