|
0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 19
|
|
Перевести римские числа в арабские, и наоборот16.05.2016, 22:05. Показов 8961. Ответов 12
Метки нет (Все метки)
0
|
|
| 16.05.2016, 22:05 | |
|
Ответы с готовыми решениями:
12
Перевести арабское число в римское и наоборот.
|
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,009
|
|
| 16.05.2016, 22:29 | |
|
Свой код имеется?
Переводить арабские в римские несложно, зная правила составления последних. Для перевода римских в арабские лучше использовать "таблицу переходов" (точное название не помню), особенно если нужна проверка правильности ввода. Должны были давать подобную теорию. Делал перевод давно (консольное приложение), но дискета с кодом ушла к одногруппнику и не вернулась. Может быть вспомню молодость и попробую сделать снова. Но на меня лучше особо не надеяться.
0
|
|
|
0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 19
|
|
| 16.05.2016, 22:56 [ТС] | |
|
Да нету теории. Да и кода нет. Пытался что то найти, а все что откопал это в C#, C++ и сраном паскале...Если поможешь, буду очень признателен)
0
|
|
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,009
|
||||||
| 17.05.2016, 02:35 | ||||||
|
Арабское в римское:
3
|
||||||
|
0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 19
|
|
| 17.05.2016, 15:34 [ТС] | |
|
Ну это в С++, а надо в билдере.
0
|
|
| 17.05.2016, 15:37 | |
|
0
|
|
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,009
|
|||||||
| 17.05.2016, 17:32 | |||||||
Сообщение было отмечено index50 как решение
РешениеТак бы и сказал, что тебе нужно полностью готовое. Неужели и правда трудно поместить на форму "кнопку" Button, "поле редактирования" Edit и "текстовую метку" Label? Плюс написать в обработчике нажатия кнопки одну строку (с помощью двойного клика по нужному событию)? Чтобы получилось подобное (верхние строки до функции ArabicToRoman создаются автоматом, самому их писать не нужно):
Раньше, когда начинали писать код с консольных приложений в древних уже IDE и все нужно было указывать самостоятельно, такие нулевые знания очень редко встречались. А если даже "формошлепством" заниматься не получается, то о каком коде может идти речь.
2
|
|||||||
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,009
|
|
| 17.05.2016, 20:46 | |
|
Я не поленился и нашел некоторые старые записи, где я, будучи студентом, на бумаге решал задачу, указанную в заголовке темы, лет 15-16 назад. Пытался не один день, но в итоге сделал "таблицу переходов", нужную по условию для решения (возможно, финального варианта нет во вложении, оригинал либо не нашел, либо он не сохранился на бумаге). А это всего лишь одно из заданий зачетной лабораторной работы.
Вот так мы тогда учились (вполне успешно), когда интернет был медленный и малодоступный, компьютеры дорогие и не сильно производительные, думали головой, а не искали халявы на форумах (про них, к счастью, ничего не знали, пусть даже они и были).
2
|
|
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,009
|
||||||
| 19.05.2016, 03:11 | ||||||
Сообщение было отмечено BRcr как решение
Решение
Добавил перевод римских чисел в арабские (функция RomanToArabic).
Имеется проверка ввода (EditRomanKeyPress) и "правильности" римского числа (с помощью "таблицы переходов" trans_table). Один нюанс - допустимо размещение подряд более трех символов M. Тут либо нужно изменять таблицу, либо не вводить соответствующие числа (больше 3999). Код (вместе с ArabicToRoman):
1
|
||||||
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,009
|
|
| 19.05.2016, 03:22 | |
|
Можно было использовать другой ("стандартный") способ проверки "правильности" римского числа (http://mech.math.msu.su/~shvet... deas.xhtml, см. таблицу), но он мне кажется не таким интересным.
0
|
|
|
Модератор
|
||||||
| 19.05.2016, 08:46 | ||||||
|
gunslinger, немного не догнал логику твоей таблицы переходов... Ну, да и пес с ней, не мне оно надо
![]() Просто когда-то делал такой перевод (без проверок на правильность составления римского числа), сейчас вот нашел в своем старье и переиначил с Delphi...
1
|
||||||
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,009
|
|
| 19.05.2016, 18:17 | |
|
Я тоже поначалу (давно) пытался сделать схожим способом (скриншот №4 [левый нижний] из 9-го поста), но сейчас он кажется не сильно "оптимальным" в смысле его написания.
А принцип таблицы прост (последний скриншот из поста №9 - итоговая таблица). Проверка допустимых сочетаний римских цифр в числе. "Заголовки" столбцов - допустимые символы (от I до M). Проверяем римское число с конца. Допустим, у нас есть число MCXIV. V - смотрим второй столбец, первую строку. В ячейке 5. Значит, переходим в строку №5. Далее I - пятая строка, первый столбец. Число 12, идем на строку №12. И т. д. Если после прохождения всего римского числа по символам последнее значение в ячейке не 18 и не 0 (< 18 и > 0) - то у нас "правильное" римское число и можно его переводить в арабское. Если 18 - то "неправильное". 0 - пустая строка (тоже неправильное число). Раньше я делал еще с учетом варианта "вообще не римское число", но сейчас среда достаточно просто позволяет ограничить ввод "левых" символов. Причем используемая таблица уже "нормализована" - убраны лишние и повторяющиеся строки, ибо изначально учет все сочетаний (групп) цифр выдавал таблицу строк на 60, если не больше. Хороший был у нас преподаватель по информатике и смежным предметам в ВУЗе. По алгоритмам всяким натаскивал. Много чего интересного дал. Те же ханойские башни с решением в "три" строки (задолго до Википедии), причем рабочий код еще долго мне представлялся чем-то за гранью понимания. P.S.: здесь https://ru.wikipedia.org/wiki/... 1%80%D1%8B (в конце) есть несколько реализованных способов перевода арабского числа в римское, но я сильно не вникал. Добавлено через 19 минут Небольшая поправка: не "V - смотрим второй столбец, первую строку", а "V - смотрим второй столбец, нулевую строку". Слева на последнем скриншоте из поста №9 нумерация строк идет с нуля.
2
|
|
| 19.05.2016, 18:17 | |
|
Помогаю со студенческими работами здесь
13
Нужно перевести римские цифры в арабские Преобразовать арабские числа в римские
арабские в римские Арабские в римские Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 05.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|