Присоединиться

11 класс·высокий уровень

Вам необходимо написать программу распознавания чисел, записанных

Условие

Вам необходимо написать программу распознавания чисел, записанных прописью. Сначала на вход программе подаётся обучающий блок, состоящий из 27 строк. Первые 9 строк содержат слова "один", "два", ...., "девять", следующие 9 строк — слова "одиннадцать", "двенадцать", ... "девятнадцать", следующие 9 строк — слова "десять", "двадцать", ..., "девяносто". Все слова записаны меленькими русскими буквами без лишних пробелов в начале и в конце строки.Затем на вход программе подаётся значение N — количество записей, которые необходимо обработать. Следующие N строк содержат записанные словами числа. Каждое число записано по-русски, маленькими буквами, без ошибок. Если число состоит из нескольких слов, между словами находится ровно один пробел, лишних пробелов в начале и в конце строк нет.Напишите эффективную программу, которая определит сумму тех входных чисел, которые находятся в интервале то 1 до 99.Размер памяти, которую использует Ваша программа, не должен зависеть от длины исходного списка.Перед текстом программы кратко опишите используемый Вами алгоритм решения задачи. Пример входных данных (обучающий блок показан в примере с сокращениями):одиндва...девяноста5двадцать восемьдва миллионачетырнадцатьсто двадцать тритысяча девятьсот восемьдесят четыреПример выходных данных для приведённого выше примера входных данных:42 Критерии оценивания выполнения задания | Баллы | Программа работает для любых входных данных произвольного размера и находит ответ, не сохраняя входные данные в массиве, размер которого соответствует числу N (количеству запросов). Программа просматривает входные данные один раз. Допускается наличие в тексте программы одной синтаксической ошибки: пропущен или неверно указан знак пунктуации, неверно написано или пропущено зарезервированное слово языка программирования, не описана или неверно описана переменная, применяется операция, недопустимая для соответствующего типа данных (если одна и та же ошибка встречается несколько раз, то это считается за одну ошибку). | 4 | Программа работает верно, но входные данные запоминаются в массиве, размер которого соответствует числу N. Этот массив, возможно, потом сортируется. Допускается наличие от одной до трех синтаксических ошибок. Возможно, в принципиально верно организованном вводе данных есть одна ошибка (например, использование read вместо readln в Паскале или неверное считывание строки в C++). Три балла также выставляется, если в эффективной программе, удовлетворяющей критериям выставления 4 баллов, есть одна ошибка, в результате которой программа работает неверно на некоторых наборах нетипичных входных данных. | 3 | Программа работает в целом верно, эффективно или нет, но в реализации алгоритма содержится до двух ошибок (неверная инициализация счётчиков, допущена ошибка в принципиально верно организованной сортировке или алгоритме поиска минимальных элементов, используется знак “<” вместо “<=”, “or” вместо “and” и тому подобное). Возможно, некорректно организовано считывание входных данных. Допускается наличие от одной до пяти синтаксических ошибок, описанных выше | 2 | Программа, возможно, неверно работает при некоторых входных данных, но по приведённому тексту решения ясно, что экзаменуемый понимает, из каких этапов должно состоять решение задачи. При использовании сортировки она может быть реализована принципиально неверно (например, вместо двух циклов используется один), или допущена принципиальная ошибка в поиске нужных элементов. Всего допускается до 4 различных ошибок в реализации алгоритма, в том числе описанных в критериях присвоения двух баллов. Допускается наличие от одной до семи синтаксических ошибок, описанных выше. | 1 | Задание не выполнено или выполнено неверно. | 0 | Максимальный балл | 4 |

Формат задания

Развёрнутый ответ: короткого ответа здесь нет — оценивается само рассуждение. Разбор откроется после входа.

Решение по шагам

  1. Как рассуждать

    Решение. Вариант

Осталось ещё 2 шага

  1. Шаг 2

  2. Шаг 3

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Обработка символьных строк»