Другие языки программирования и технологии
Задачка на Паскале,чето не понял,что от меня хотят?)
Дан текст из заглавных латинских букв, за которым следует пробел. Определить является ли этот текст правильной записью римскими цифрами целого числа от 1 до 999.
Заглавными латинскими буквами принято обозначать римские цифры.
"Кампутер" правильно подсказал! :-)
"Кампутер" правильно подсказал! :-)
Задача достаточно нетривиальная
Во-первых существует множество вариантов записи
вот статья в Wiki http://ru.wikipedia.org/wiki/Р РёРјСЃРєРёРµ_цифры
Нужно выбрать один вариант и по нему уже смотреть, в статье и примеры программ есть
Во-первых существует множество вариантов записи
вот статья в Wiki http://ru.wikipedia.org/wiki/Р РёРјСЃРєРёРµ_цифры
Нужно выбрать один вариант и по нему уже смотреть, в статье и примеры программ есть
нормально там всё.. в глобальные массив определяем римских цифр, если не то, вылетаем из цикла, если подходит, считаем... Do case и проблема решена
римские цифры, например: XXI или IV, а дальше пробел. что тут не понятного?
По-моему задача непростая.
Понятно, что нужно проверять сначала, чтобы в строке до пробела содержались только буквы I V X L C D M
Предлагаю разбить строку условно на сотни, десятки и единицы.
1) первая часть должна содержать только M, D или C и оканчиваться на M или D. Может быть пустой.
2) вторая часть может содержать только C, L или X, и оканчиваться на C или L. Может быть пустой.
3) третья часть может содержать тоьько X V или I. Пустой быть не может.
Если не получилось разбить - то ошибка.
Теперь надо рассмотреть каждую из частей. Проверка по ним выполняется одинакого, заменой соответствующих букв.
Например, проверяя первую часть, можно заменить M на X, D на V, C на X и выполнить аналогичную проверку "последней" части.
Эту последнюю часть предлагаю проверять перечислением.
Забить 40 строк и с каждой сравнивать.
строки эти I II III IV V VI VII IX X XI XII XIII XIV XV XVI XVII XVIII XIX XX XXI XXII XXIII XIV XV XVI XVII XXIX XXX XXXI XXXII XXXIII XXXIV XXXV XXXVI XXXVII XXXVIII XXXIX
Наверное это будет корректно. Но может и нет
Дополнение: да, это не совсем верно. Точнее, существуют строки, подходящие под такое описание, но не являющиеся римскими числами.
Понятно, что нужно проверять сначала, чтобы в строке до пробела содержались только буквы I V X L C D M
Предлагаю разбить строку условно на сотни, десятки и единицы.
1) первая часть должна содержать только M, D или C и оканчиваться на M или D. Может быть пустой.
2) вторая часть может содержать только C, L или X, и оканчиваться на C или L. Может быть пустой.
3) третья часть может содержать тоьько X V или I. Пустой быть не может.
Если не получилось разбить - то ошибка.
Теперь надо рассмотреть каждую из частей. Проверка по ним выполняется одинакого, заменой соответствующих букв.
Например, проверяя первую часть, можно заменить M на X, D на V, C на X и выполнить аналогичную проверку "последней" части.
Эту последнюю часть предлагаю проверять перечислением.
Забить 40 строк и с каждой сравнивать.
строки эти I II III IV V VI VII IX X XI XII XIII XIV XV XVI XVII XVIII XIX XX XXI XXII XXIII XIV XV XVI XVII XXIX XXX XXXI XXXII XXXIII XXXIV XXXV XXXVI XXXVII XXXVIII XXXIX
Наверное это будет корректно. Но может и нет
Дополнение: да, это не совсем верно. Точнее, существуют строки, подходящие под такое описание, но не являющиеся римскими числами.
0_o
Буквы X, V, I, L, M, C - остальные исключить. Далее проверка - какая буква на каком месте, задача-то элементарная.
Денис Коновалов
да вы что? А каким числом является CXCVCICICIC например? По буквам же подходит.
Эдуард Ковалёв
Думать надо, на то "оно" и программирование...
Похожие вопросы
- Задачка в Паскале
- Помогите, пожалуйста, решить задачку на паскале. Заранее благодарна.
- Задачка по Паскалю.
- Помогите с задачкой по Паскалю
- Помогите простенькие задачки по паскалю решить??)
- Люди помогите решить задачку!!!на паскале
- Задачка на Паскале
- Задачка по Паскалю
- помогите, пожалуйста, с задачкой в Паскале
- Нужна помощь в решении задачки на паскале )