3 / 3 / 2
Регистрация: 09.12.2011
Сообщений: 58
|
|
1 | |
Перевод римских чисел в арабские и наоборот09.12.2011, 22:00. Показов 103594. Ответов 20
Метки нет (Все метки)
Я в Си программирую недавно, помогите пожалуйста решить....
Разработать программу для перевода чисел, записанных римскими цифрами в числа, записанные арабскими, и наоборот. 1 I 5 V 10 X 50 L 100 C 500 D 1000 M Например: 46 XLVI ; 583 DLXXXIII; 888 DCCCLXXXVIII; 1989 MCMLXXXIX
0
|
09.12.2011, 22:00 | |
Ответы с готовыми решениями:
20
Перевод римских чисел в арабские Перевод римских цифр в арабские Из римских чисел в арабские в файле Перевод римских чисел в арабские |
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
09.12.2011, 22:12 | 2 |
вот по крайней мере из римских в десятичные что-то пытались сделать:
задача на римскую систему счисления
1
|
3 / 3 / 2
Регистрация: 09.12.2011
Сообщений: 58
|
|
09.12.2011, 22:35 [ТС] | 3 |
А кто-нибудь знает как сделать из десятичных в римские???
0
|
50 / 50 / 12
Регистрация: 22.05.2011
Сообщений: 326
|
|
09.12.2011, 22:38 | 4 |
Вы хоть сами что-то напишите, идеи свои или код
Чем вам поможет тупо скопированный чужой код По идее нужно двигаться с конца, и сразу выводить. То есть числа переводите в массив и выводите сразу.
0
|
09.12.2011, 22:39 | 5 |
1
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
09.12.2011, 23:43 | 6 | |||||
да. задачка оказалась интересной. внесу свои пять копеек в фонд решений. оптимизацию и запрет глобальных переменных в топку. главное работает
1
|
278 / 173 / 21
Регистрация: 10.07.2011
Сообщений: 441
|
|
10.12.2011, 06:03 | 7 |
В строке 17 переменная i объявлена как size_t,а значит как минимум не может принимать отрицательные значения. В связи с этим в цикле (строка 24) условие i >= 0 будет всегда TRUE и от сюда следует бесконечный цикл.
Возможно я чего-то не понимаю конечно или мой компилятор minGw чего то не понимает, но я бы в место size_t объявил переменнаю i с типом int. В таком случае в бесконечный цикл не провалится. Добавлено через 2 минуты еще хотел бы добавить что программа на мой взгляд не совсем корректна. т.к. числа типа ХХХХ или IIIIIII программой считаются верными. Хотя они долны иметь запись XL и IIX, соответственно.
0
|
278 / 173 / 21
Регистрация: 10.07.2011
Сообщений: 441
|
|
10.12.2011, 06:44 | 9 |
да верно.. вынужден поправиться... 8 в римском исполнении VIII, а не IIX ну и тем более не IIIIIIII
0
|
3 / 3 / 2
Регистрация: 09.12.2011
Сообщений: 58
|
||||||
18.12.2011, 17:19 [ТС] | 10 | |||||
Друзья, помогите.... Я пытаюсь сделать перевод из арабской в римскую простым перебором.
Помогите правильно перевернуть строки s и s1 (16 и 75 строки соответственно).... Также я не сдаю как правильно дописывать символы в конец строки s1 (это строки с 21 по 68) Добавлено через 2 часа 51 минуту Ауу, народ, взгляните на мой код.....помагите пожалуйства испривить ошибки.....
0
|
278 / 173 / 21
Регистрация: 10.07.2011
Сообщений: 441
|
||||||
18.12.2011, 22:20 | 11 | |||||
простой пример как перевернуть строки:
Если массив не динамический. 1. Проверьте есть ле место в массиве. (Вы задаете размер массива в момент его декларации и знаете как вычеслить текущий размер строки в массиве. Отсюда легко понять есть ли еще место) 2. следующий элемент массива вы можете записывать на позицию которая равна длина_строки_в_массиве + 1 3. не забудьте "закрыть" массив char. следующий за последним элементом вашей строки должен быть символ '\0'
0
|
12 / 12 / 4
Регистрация: 04.08.2010
Сообщений: 80
|
||||||
19.12.2011, 23:05 | 12 | |||||
Привет. Ниже пример транслятора "Римская запись-> арабская". Работает нормально: проверяются правила вычитания(например,IIX-ошибка),проверяется количество повторов символов(по правилам не более 3-х), проверяется допустимость введенных символов. Если заинтересует могу записать грамматику на которой все это построено.
1
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
20.12.2011, 00:35 | 13 | |||||
Перевод из арабских в римские делается очень просто при наличии правильной таблицы. нужно лишь разбить число на тысячи\сотни\десятки\еденицы, поискать в таблице нужные римские значения и потом сложить все эти римские строки.
Вот проапдейченный пример с фиксом бага + конвертацией из арабских в римские. Табличка расширена. Подглядел из примера, который сделан на boost::spirit. Можно было конечно же все на одной таблице сделать, но это лишний геморрой с поиском нужного значения. Мапы в этом плане по удобнее будут.
0
|
12 / 12 / 4
Регистрация: 04.08.2010
Сообщений: 80
|
|
20.12.2011, 12:16 | 14 |
Ребята, нахрена так жизнь усложнять.Опишите эту хрень контекстно-свободной грамматикой и реализуйте. выйдет быстоее, аккуратнее и кода меньше.=)
0
|
6 / 6 / 0
Регистрация: 17.12.2010
Сообщений: 34
|
||||||
05.02.2012, 16:51 | 15 | |||||
1
|
0 / 0 / 1
Регистрация: 24.04.2012
Сообщений: 148
|
||||||
17.01.2013, 11:59 | 16 | |||||
Под вопросом, почему не работает и ошибка lvalue required? Спасибо за вашу отзывчивость
0
|
0 / 0 / 0
Регистрация: 29.03.2016
Сообщений: 2
|
|
11.05.2016, 16:25 | 17 |
А Вы можете показать эту грамматику? В еще одной такой же теме Вы оставили код. Хотелось бы посмотреть как это работает.
Буду очень благодарен.
0
|
0 / 0 / 0
Регистрация: 29.03.2016
Сообщений: 2
|
|
15.05.2016, 20:42 | 18 |
RomanLesNik, если не сложно, покажите грамматику. Буду очень благодарен
0
|
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 11
|
|
15.05.2016, 22:13 | 19 |
Парни, вопрос реально не по теме, так что ивиняйте. Не могу создать свою тему на Cyberforum. Поэтому и пишу сюда а не в свою тему (я ж не быдло). Ответьте, кто может.
0
|
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 1
|
||||||
15.10.2016, 00:14 | 20 | |||||
Это конечно дичь, но работает
0
|
15.10.2016, 00:14 | |
15.10.2016, 00:14 | |
Помогаю со студенческими работами здесь
20
Перевод римских чисел в арабские Перевод римских чисел в арабские Перевод из римских чисел в арабские с проверкой корректности ввода Перевод из римских в арабские Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |