Числа словами от shady

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Числа словами от shady

Сообщение shady » 22.08.2008 (Пт) 12:49

Вот модуль какой я использую давольно-таки давно для получения суммы прописью.
Использовать:
Код: Выделить всё
txt.text=SumToStr(1000)
У вас нет доступа для просмотра вложений в этом сообщении.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Re: Числа словами от shady

Сообщение BV » 24.08.2008 (Вс) 22:44

Я в код особо не вникал, но это бросилось в глаза...

Код: Выделить всё
        Select Case Value Mod 10
          Case 1
            Select Case Level
              Case 0
                SSTRING = s + "один"
              Case 1
                SSTRING = s + "одна тысяча"
              Case 2
                SSTRING = s + "один миллион"
              Case 3
                SSTRING = s + "один миллиард"
              Case 4
                SSTRING = s + "один триллион"
            End Select
            Exit Function
          Case 2
            Select Case Level
              Case 0
                SSTRING = s + "два"
              Case 1
                SSTRING = s + "две тысячи"
              Case 2
                SSTRING = s + "два миллиона"
              Case 3
                SSTRING = s + "два миллиарда"
              Case 4
                SSTRING = s + "два триллиона"
            End Select
            Exit Function
          Case 3
            Select Case Level
              Case 0
                SSTRING = s + "три"
              Case 1
                SSTRING = s + "три тысячи"
              Case 2
                SSTRING = s + "три миллиона"
              Case 3
                SSTRING = s + "три миллиарда"
              Case 4
                SSTRING = s + "три триллиона"
            End Select
            Exit Function
          Case 4
            Select Case Level
              Case 0
                SSTRING = s + "четыре"
              Case 1
                SSTRING = s + "четыре тысячи"
              Case 2
                SSTRING = s + "четыре миллиона"
              Case 3
                SSTRING = s + "четыре миллиарда"
              Case 4
                SSTRING = s + "четыре триллиона"
            End Select
            Exit Function
          Case 5
            s = s + "пять"
          Case 6
            s = s + "шесть"
          Case 7
            s = s + "семь"
          Case 8
            s = s + "восемь"
          Case 9
            s = s + "девять"
        End Select


Зачем от двух до четырех дополнительные Select Case?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Re: Числа словами от shady

Сообщение shady » 25.08.2008 (Пн) 8:21

BV, я оптимизацией функций не занимался т.к. их производительность меня устраивала. Хотя есть там мелкие огрехи которые можно было бы поправить. Но я не понял, чем тебя смутили SELECTы?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Числа словами от shady

Сообщение Viper » 25.08.2008 (Пн) 10:15

shady писал(а):BV, я оптимизацией функций не занимался т.к. их производительность меня устраивала. Хотя есть там мелкие огрехи которые можно было бы поправить. Но я не понял, чем тебя смутили SELECTы?
Мелкие? :shock: Там огрех на огрехе в немеренном количестве просто сидит и огрехом погоняет. Щаз просто лениво разбором кода заниматься.
Весь мир матрица, а мы в нем потоки байтов!


Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

    TopList