Alisa |
Отправлено: 23.09.2005, 13:07 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 33
|
Добрый день!
Надо написать программку, которая введенное число могла преобразовать в буквенную форму.
Например: пользователь ввел "44 рубля 55 копеек", а программа должна выдать "сорок четыре рубля пятьдесят пять копеек".
Помогите, пожалуйста, не знаю с какой стороны подойти к этой задаче.
Заранее спасибо.
|
|
olegenty |
Отправлено: 23.09.2005, 13:24 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
что-то такое было в RxLib
|
|
Alisa |
Отправлено: 23.09.2005, 13:29 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 33
|
QUOTE (olegenty @ 23/09/2005, 13:24) | что-то такое было в RxLib |
А поточнее не подскажите?
|
|
** full_lamer |
Отправлено: 23.09.2005, 13:29 |
|
Не зарегистрирован
|
Во-первых определитесь с вводом, как будет представлена входная информация: "44,55" — анализировать сразу числа или "44 рубля 55 копеек" — выделить числа и потом начать анализ.
Далее организация массивов для единиц:
CODE | {"", "один", "два", ... "девять"}; |
и копеек:
CODE | {"", "одна", "две", ... "девять"}; |
Соответственно я думаю, что следует расширить единицы до 19... Таким же макаром, сделать десятки и сотни:
CODE | {"", "", "двадцать", ... "девяносто"}; |
CODE | {"", "сто", "двести", ... "девятьсот"}; |
И анализировать числа по три разряда: беруться цифры разряда — определяться тысячи,миллионы или сотни, и в соотвествии проставляются постфиксы. Дополнительно введятся постфиксы: рубли, тысячи и миллионы.
CODE | {"", "рубль", "рубля", ... "рублей"};
{"", "тысяча", "тысячи", ... "тысяч"};
{"", "миллион", "миллиона", ... "миллионов"}; |
Порядок разбора:
0. разбить на части по три цифры от конца;
1. начать наращивание строки с конца;
2. получить следующую триаду;
3. определеить положение триады — проставив соответствующий постфикс;
4. получить очередную цифру триады;
5. расшифровать цифры;
6. конец цикла 4;
7. конец цикла 2;
конец.
|
|
avc* |
Отправлено: 23.09.2005, 14:02 |
|
Не зарегистрирован
|
Плюс к ** full_lamer — не забыть о роде
доллар и рубль — он
марка и гривна — она
а евро черт знает что
(...сколько раз приходилось писать и на разных языках — вставляю как функцию в базу) |
|
Alisa |
Отправлено: 23.09.2005, 14:26 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 33
|
QUOTE (avc* @ 23/09/2005, 14:02) | (...сколько раз приходилось писать и на разных языках — вставляю как функцию в базу) |
А можно Вас попросить привести маленький примерчик?
|
|
AVC |
Отправлено: 23.09.2005, 15:15 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Васик (VBA) устроит?
На С искать надо (черт его знает куда запаковал) — пишу для БД, эти функции на сервере.
Отредактировано AVC — 23/09/2005, 14:15
|
|
Alisa |
Отправлено: 23.09.2005, 16:04 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 33
|
QUOTE (AVC @ 23/09/2005, 15:15) | Васик (VBA) устроит?
На С искать надо (черт его знает куда запаковал) — пишу для БД, эти функции на сервере. |
Уважаемый AVC!
Спасибо вам большое!
Но если вдруг нечаянно наткнетесь на Сишную прогу...[B]
Отредактировано Alisa — 23/09/2005, 16:05
|
|
Guest |
Отправлено: 23.09.2005, 16:10 |
|
Не зарегистрирован
|
То что я вам дал перевести в С займет меньше времени чем поиски по архивам . Если в понедельник еще будет актуально — сообщите, переведу. |
|
Alisa |
Отправлено: 23.09.2005, 16:13 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 33
|
Я постараюсь сама перевести... я вижу что это легко...
Но если вдруг что-то неполучиться — обращусь за помощью...
Огромное Вам спасибо!
|
|
Valdemar |
Отправлено: 26.09.2005, 08:57 |
|
Мастер участка
Группа: Участник
Сообщений: 433
|
Может кому пригодится (функция преобразования числа в строку на С)
|
|