![]() |
|
|
![]()
|
|
| Сый |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 131 Регистрация: 23.1.2006 Репутация: 2 Всего: 3 |
Нужен алгоритм, преобразующий число в его словесное представление (например: 123 - "сто двадцать три").
--------------------
Язык программирования, родственный языкам Паскаль и Оберон, использующий русские служебные слова - Глагол: http://glagol.nad.ru |
|||
|
||||
| BSOD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 1.11.2004 Где: Гомель Репутация: нет Всего: 3 |
ну проще всего - записать 1 2 3 4 ... 10 20 30 40... 100 200 300 и.т.д.
ну а потом из этих записей числа формировать типа 100 + 20 +3 -------------------- как корабль назовешь - то на нем и напишешь |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Развеж это алгоритм?
Вообще на форуме уже для нескольких языков писали. Помотри ФАК. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
||||
|
||||
| Сый |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 131 Регистрация: 23.1.2006 Репутация: 2 Всего: 3 |
Ну не стал я переделывать готовые алгоритмы.
Вобщем, написал я это дело. Программа разбирает число на рязряды. Алгоритм такой:
Как бы теперь этот код переделать с использованием ОТ-ДО, ПОВТОРЯТЬ и т. д., чтобы уменьшить его размер при разборке более крупных чисел? --------------------
Язык программирования, родственный языкам Паскаль и Оберон, использующий русские служебные слова - Глагол: http://glagol.nad.ru |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
НАЧАЛО
Индекс := 0; ПОКА Число БОЛЬШЕ 0 Цифры[Индекс]=(Число ОСТАТОК 1000) ДЕЛИТЬ 10; Число := Число ДЕЛИТЬ 10; КОНЕЦ; Как на Глаголе писать не знаю |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 1 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Сый |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 131 Регистрация: 23.1.2006 Репутация: 2 Всего: 3 |
УКАЗ
Индекс := 0; ПОКА Число > 0 ВЫП Цифры[Индекс]:=(Число ОСТАТОК 1000) ДЕЛИТЬ 10; Число := Число ДЕЛИТЬ 10; КОН; Так на Глаголе Но вот насчёт правильности алгоритма есть сомнения. К примеру, если взять 4-х значное число и применить данные действия, получаем: Число = 1234; (Число ОСТАТОК 1000) ДЕЛИТЬ 10 = 234 ДЕЛИТЬ 10 = 23 (а цифра никак не может быть больше 9). --------------------
Язык программирования, родственный языкам Паскаль и Оберон, использующий русские служебные слова - Глагол: http://glagol.nad.ru |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Сый, может ты все-таки добредешь до ФАКа? или хотя бы в поиске наберешь "число прописью" (или "сумма прописью")? Если скромненько - то по конфе ищи, с размахом - можно сразу в Гугле.
Что до алгоритма - он прост. Число делится на группы по три цифры. Каждая группа транслируется в пропись, в зависимости от ее номера берется множитель (тыщ, мульенов - сколь заложишь) и от десятков-единиц этой группы - падеж. Все. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| doomik |
|
||||
![]() Одинокий волк ![]() ![]() Профиль Группа: Участник Сообщений: 360 Регистрация: 25.10.2005 Где: #vingrad Репутация: нет Всего: 15 |
сделал что-то
Это сообщение отредактировал(а) d00mik - 28.3.2006, 18:36 -------------------- "Единственный способ изучать новый язык программирования - писать на нем программы." - Brian Kernighan Remember, st1ng3r /server irc.ircline.ru /j #vingrad |
||||
|
|||||
| Сый |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 131 Регистрация: 23.1.2006 Репутация: 2 Всего: 3 |
Всем спасибо, вот кое-что собрал:
Вызов задачи ВТекст с параметром 23543651 выведет на экран следующее: двадцать три миллиона пятьсот сорок три тысячи шестьсот пятьдесят один --------------------
Язык программирования, родственный языкам Паскаль и Оберон, использующий русские служебные слова - Глагол: http://glagol.nad.ru |
|||
|
||||
| Сый |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 131 Регистрация: 23.1.2006 Репутация: 2 Всего: 3 |
Небольшая недоработка:
Например, число 2143 будет выведено так: два тысячи сто сорок три Вот код с исправлением (добавлен параметр рода следующего числительного в задачу ВывестиТри и СклонениеЧ):
--------------------
Язык программирования, родственный языкам Паскаль и Оберон, использующий русские служебные слова - Глагол: http://glagol.nad.ru |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |