powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / не знаю как решить эту задачу!! помогите пожалийста!!
21 сообщений из 21, страница 1 из 1
не знаю как решить эту задачу!! помогите пожалийста!!
    #38275260
druce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Составить программу, реализующую алгоритм, преобразующий произвольное положительное число, записанное в арабских цифрах, в систему римских цифр и наоборот.
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38275313
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://ru.wikipedia.org/wiki/Римские_цифры
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38275421
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. разбираемся в правилах записи римских чисел
2. одних только правил для написания проги мало. Надо придумать алгоритм
3. реализуем этот алгоритм на С. Только на этой фазе начинается работа с си.
4. радуемся.

по всей видимости, вы прошли только пункт 1, и сразу пытаетесь сделать пункт 3. Так можно, но не в процессе обучения. Не пропускайте п.2.
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38275428
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38275450
druce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уважаемый Dimitry Sibiryakov,
Римские цифры знаю,мне надо самый программ
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38275456
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
druce,

код на с++ легко ищется в гугле
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38275458
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
druce,

Прочитай: 12553838
Если ты выбираешь первый путь: озвучь цену которую ты готов заплатить.
Если второй путь: сделай что-нибудь, докажи что ты хочешь научиться.
В любом случае: перестань канючить.
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38277786
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
druceСоставить программу, реализующую алгоритм, преобразующий произвольное положительное число, записанное в арабских цифрах, в систему римских цифр и наоборот.
Я бы на месте автора пошёл по пути, подобному разработке парсера арифметических выражений, поскольку эти задачи выглядят подобными. Т.е. составил бы BNF грамматику и на её основе написал реализацию.
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38277948
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompositumdruceСоставить программу, реализующую алгоритм, преобразующий произвольное положительное число, записанное в арабских цифрах, в систему римских цифр и наоборот.
Я бы на месте автора пошёл по пути, подобному разработке парсера арифметических выражений, поскольку эти задачи выглядят подобными. Т.е. составил бы BNF грамматику и на её основе написал реализацию.

За творческий подход я был поставил тебе 5, а за выбор его в качестве решения этой задачи влепил бы 1 с принудительной отправкой на картошку.
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38277964
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ШироковЗа творческий подход я был поставил тебе 5, а за выбор его в качестве решения этой задачи влепил бы 1 с принудительной отправкой на картошку.
Сказал "А", говори "Б": каков твой вариант решения, "учитель"?
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38278336
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompositumАнатолий ШироковЗа творческий подход я был поставил тебе 5, а за выбор его в качестве решения этой задачи влепил бы 1 с принудительной отправкой на картошку.
Сказал "А", говори "Б": каков твой вариант решения, "учитель"?
Думаю потому-что парсер арабских цифр - задача вырожденная. Неинтересная и надуманная.
Их парсить не нужно. Любой scanf уже всё делает за нас. Обратная задача (парсинг римских цифр) тоже
вобщем-то необязателная. Простые строковые операции и проверки условий решают всё. Тоесть
парсер и конвертер воплощены в одной неразделимой логике.

Полноценный парсер нужен тогда когда мы грамматику развешиваем на узлах дерева.
У нас никакого дерева нет. Римское число - плоское и не обладает какой либой
интересной грамматикой.
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38278351
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДумаю потому-что парсер арабских цифр - задача вырожденная. Неинтересная и надуманная.
Их парсить не нужно. Любой scanf уже всё делает за нас.
Я не для этого предлагал BNF, т.к. арабские, понятное дело, следует получать с помощью std::cin. Я предлагал для парсинга римских.
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38278371
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositum,

для проверки валидности римского числа думаю достаточно будет регулярных выражений.
Это если вообще ставить себе такую задачу -- проверять входные данные.

Из википедии:

ВикипедияНатуральные числа записываются при помощи повторения этих цифр. При этом, если большая цифра стоит перед меньшей, то они складываются (принцип сложения), если же меньшая — перед большей, то меньшая вычитается из большей (принцип вычитания). Последнее правило применяется только во избежание четырёхкратного повторения одной и той же цифры.


Для каждой римской цифры известен её номинал N -- вес в 10-ой системе.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
римские цифры
1 	I 	лат. unus
5 	V 	лат. quinque
10 	X 	лат. decem
50 	L 	лат. quinquaginta
100 	C 	лат. centum
500 	D 	лат. quingenti
1000 	M 	лат. mille

А алгоритм преобразования римских чисел в арабские, думаю, выглядит примерно так:

заводим суммы S1 и S2. S1 -- текущее значение числа (будет в итоге хранить результат),
S2 -- сумма номиналов последней встреченной последовательности одинаковых римских цифр.
Ну и храним текущую цифру последней последовательности одинаковых цифр.

идём в цикле по римским цифрам числа.

на каждом шаге увеличиваем S1 на величину N - S2 ( S1 += N[i] - S2 )

Если очередная римская цифра больше предыдущей, то обнуляем S2 и очищаем последовательность одинаковых цифр.

Если очередная римская цифра равна текущей цифре последней последовательности одинаковых цифр, то увеличиваем S2 на её номинал.

Если очередная римская цифра меньше предыдущей, то обнуляем S2 и очищаем последовательность одинаковых цифр, а номиналы последующих цифр суммируем с отрицательным знаком (до следующей большей цифры).

Вроде бы как всё.
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38278375
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, ёёёё!

авторСоставить программу, реализующую алгоритм, преобразующий произвольное положительное число, записанное в арабских цифрах, в систему римских цифр и наоборот.

надо же наоборот, арабские в римские.
блин...

Но это проще.
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38278382
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivИз википедии:
Ага, ты тоже эту статью дальше первых двух параграфов ниасилил...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38278436
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMasterZivИз википедии:
Ага, ты тоже эту статью дальше первых двух параграфов ниасилил...


Почему же, всё прочитал.
Да и раньше знал в общем-то.
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38278441
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivалгоритм преобразования римских чисел в арабские, думаю, выглядит примерно
так:
MasterZivПочему же, всё прочитал.
Тогда как не заметил точно расписанный алгоритм и даже готовый код?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38278455
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMasterZivалгоритм преобразования римских чисел в арабские, думаю, выглядит примерно
так:
MasterZivПочему же, всё прочитал.
Тогда как не заметил точно расписанный алгоритм и даже готовый код?


Ну, не заметил. Алгоритма там и нет кстати.
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38278523
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivАлгоритма там и нет кстати.
Хм, действительно, "если большая цифра стоит перед меньшей, то они складываются (принцип
сложения), если же меньшая — перед большей, то меньшая вычитается из большей (принцип
вычитания)" это не алгоритм.
Я бы сделал иначе:
1) Идём по цифрам справа налево
2) Если текущая цифра больше предыдущей - прибавляем к результату, иначе - вычитаем.
3) Всё, телемаркет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38279170
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Я другой алгоритм искал, см. выше...
...
Рейтинг: 0 / 0
не знаю как решить эту задачу!! помогите пожалийста!!
    #38279365
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompositumdruceСоставить программу, реализующую алгоритм, преобразующий произвольное положительное число, записанное в арабских цифрах, в систему римских цифр и наоборот.
Я бы на месте автора пошёл по пути, подобному разработке парсера арифметических выражений, поскольку эти задачи выглядят подобными. Т.е. составил бы BNF грамматику и на её основе написал реализацию.
Одна из задач "Драконьей книги", между прочим.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / не знаю как решить эту задачу!! помогите пожалийста!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]