Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Yulo

Текстовый эквивалент числа

15.10.2010, 11:21. Показов 1723. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Поделитесь, пожалуйста, кому не жалко функцией вывода текстового эквивалента числа :o . (например, 1100 как "Одна тысяча сто")
Спасибо
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.10.2010, 11:21
Ответы с готовыми решениями:

текстовый эквивалент числа
Здравствуйте. Поделитесь, пожалуйста, кому не жалко функцией вывода текстового эквивалента числа :-[. (например, 1100 как "Одна...

Преобразование целого числа в текстовый эквивалент
Преобразование целого числа в текстовый эквивалент Например: 1 в один 321 в триста двадцать один 25 в двадцать пять и т.д. ...

Перекодировка %F2%E5%F1%F2 в текстовый эквивалент
Я посылаю на поиск в каталоге яндекса слово 'тест'. Яндекс формирует урл вида: ...

1
Yulo
15.10.2010, 13:30
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
Function Прописью(Number As Long, Optional Rod As Integer = 1, _
        Optional R5 As String = "", Optional R1 As String = "", _
        Optional R2 As String = "", Optional ByRef Sklonenie As Integer) As String
' Записывает прописью число с существительным
' Number - собственно число (от -2*147*483*648 до 2*147*483*647)
' Rod - род существительного (1 - муж. (по умолчанию), 2 - жен., 3 - ср.)
' R5 - существительное в форме "пять штук" (по умолчанию - "")
' R1 - существительное в форме "одна штука" (по умолчанию - "")
' R2 - существительное в форме "две штуки" (по умолчанию - "")
' Sklonenie - переменная, в которую будет помещено склонение
'    существительного (5 - "пять штук", 1 - "одна штука", 2 - "две штуки")
' ВНИМАНИЕ! Использует функцию Трехзначный (см. ниже)
Dim p As String, skl As Integer, n As Long
    p = ""
    n = Abs(Number)
    Sklonenie = 5
    p = p & Трехзначный(n \ 1000000000, skl, 1, "миллиардов ", "миллиард ", "миллиарда ")
    n = n Mod 1000000000
    p = p & Трехзначный(n \ 1000000, skl, 1, "миллионов ", "миллион ", "миллиона ")
    n = n Mod 1000000
    p = p & Трехзначный(n \ 1000, skl, 2, "тысяч ", "тысяча ", "тысячи ")
    n = n Mod 1000
    p = p & Трехзначный(n, Sklonenie, Rod, R5, R1, R2)
    If n = 0 Then p = p & R5
    If Number < 0 Then p = "минус " & p
    If Number = 0 Then p = "ноль " & R5
    Прописью = p
End Function
 
Function Трехзначный(Number As Long, Optional ByRef Sklonenie As Integer, _
        Optional Rod As Integer = 1, Optional R5 As String = "", _
        Optional R1 As String = "", Optional R2 As String = "") As String
' Записывает прописью трехзначное число с существительным
' Number - собственно число
' Sklonenie - переменная, в которую будет помещено склонение
'    существительного (5 - "пять штук", 1 - "одна штука", 2 - "две штуки")
' Rod - род существительного (1 - муж. (по умолчанию), 2 - жен., 3 - ср.)
' R5 - существительное в форме "пять штук" (по умолчанию - "")
' R1 - существительное в форме "одна штука" (по умолчанию - "")
' R2 - существительное в форме "две штуки" (по умолчанию - "")
Dim p As String
Dim n As Long, d1 As Integer, d2 As Integer, d3 As Integer
    n = Abs(Number)
    d1 = n Mod 10
    d2 = ((n - d1) / 10) Mod 10
    d3 = ((n - 10 * d2 - d1) / 100) Mod 10
    Sklonenie = 5
    If d2 = 1 Then
        Select Case d1
            Case 0
                p = "десять "
            Case 1
                p = "одиннадцать "
            Case 2
                p = "двенадцать "
            Case 3
                p = "тринадцать "
            Case 4
                p = "четырнадцать "
            Case 5
                p = "пятнадцать "
            Case 6
                p = "шестнадцать "
            Case 7
                p = "семнадцать "
            Case 8
                p = "восемнадцать "
            Case 9
                p = "девятнадцать "
        End Select
     Else
        Select Case d2
            Case 0
                p = ""
            Case 2
                p = "двадцать "
            Case 3
                p = "тридцать "
            Case 4
                p = "сорок "
            Case 5
                p = "пятьдесят "
            Case 6
                p = "шестьдесят "
            Case 7
                p = "семьдесят "
            Case 8
                p = "восемьдесят "
            Case 9
                p = "девяносто "
        End Select
        Select Case d1
            Case 0
                p = p
            Case 1
                Select Case Rod
                    Case 2
                        p = p & "одна "
                    Case 3
                        p = p & "одно "
                    Case Else
                        p = p & "один "
                End Select
                Sklonenie = 1
            Case 2
                Select Case Rod
                    Case 2
                        p = p & "две "
                    Case 3
                        p = p & "два "
                    Case Else
                        p = p & "два "
                End Select
                Sklonenie = 2
            Case 3
                p = p & "три "
                Sklonenie = 2
            Case 4
                p = p & "четыре "
                Sklonenie = 2
            Case 5
                p = p & "пять "
            Case 6
                p = p & "шесть "
            Case 7
                p = p & "семь "
            Case 8
                p = p & "восемь "
            Case 9
                p = p & "девять "
        End Select
     End If
    Select Case d3
        Case 0
            p = p
        Case 1
            p = "сто " & p
        Case 2
            p = "двести " & p
        Case 3
            p = "триста " & p
        Case 4
            p = "четыреста " & p
        Case 5
            p = "пятьсот " & p
        Case 6
            p = "шестьсот " & p
        Case 7
            p = "семьсот " & p
        Case 8
            p = "восемьсот " & p
        Case 9
            p = "девятьсот " & p
    End Select
    Select Case Sklonenie
        Case 5
            p = p & R5
        Case 1
            p = p & R1
        Case 2
            p = p & R2
    End Select
    If Number < 0 Then p = "минус " & p
    If Number = 0 Then p = ""
    Трехзначный = p
End Function
Для SQL

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
ALTER FUNCTION [dbo].[RubPhrase] (@VALUE money)
RETURNS VARCHAR(255)
AS
BEGIN
  DECLARE @rpart BIGINT, @rattr tinyint,  @cpart tinyint, @cattr tinyint
  SET @rpart=FLOOR(@VALUE)     SET @rattr=@rpart%100
  IF @rattr>19 SET @rattr=@rattr%10
  SET @cpart=(@Value-@rpart)*100
  IF @cpart>19 SET @cattr=@cpart%10 ELSE SET @cattr=@cpart 
  RETURN dbo.NumPhrase(@rpart,1)+' рубл'
           +CASE WHEN @rattr=1 THEN 'ь' WHEN @rattr IN (2,3,4) THEN 'я' ELSE 'ей' END+' '
           +RIGHT('0'+CAST(@cpart AS VARCHAR(2)),2)+' копе' 
           +CASE WHEN @cattr=1 THEN 'йка' WHEN @cattr IN (2,3,4) THEN 'йки' ELSE 'ек' END
END  
 
ALTER FUNCTION [dbo].[NumPhrase] (@Num BIGINT, @IsMaleGender bit=1)
RETURNS VARCHAR(255)
AS
BEGIN 
  DECLARE @nword VARCHAR(255), @th tinyint, @gr SMALLINT, @d3 tinyint, @d2 tinyint, @d1 tinyint
  IF @Num<0 RETURN '*** Error: Negative value' ELSE IF @Num=0 RETURN 'Ноль' /* особый случай */ 
  while @Num>0
  BEGIN
    SET @th=IsNull(@th,0)+1    SET @gr=@Num%1000    SET @Num=(@Num-@gr)/1000
    IF @gr>0
    BEGIN
      SET @d3=(@gr-@gr%100)/100
      SET @d1=@gr%10
      SET @d2=(@gr-@d3*100-@d1)/10
      IF @d2=1 SET @d1=10+@d1 
      SET @nword=CASE @d3 
                  WHEN 1 THEN ' сто' WHEN 2 THEN ' двести' WHEN 3 THEN ' триста'
                  WHEN 4 THEN ' четыреста' WHEN 5 THEN ' пятьсот' WHEN 6 THEN ' шестьсот'
                  WHEN 7 THEN ' семьсот' WHEN 8 THEN ' восемьсот' WHEN 9 THEN ' девятьсот' ELSE '' END
                +CASE @d2
                  WHEN 2 THEN ' двадцать' WHEN 3 THEN ' тридцать' WHEN 4 THEN ' сорок'
                  WHEN 5 THEN ' пятьдесят' WHEN 6 THEN ' шестьдесят' WHEN 7 THEN ' семьдесят'
                  WHEN 8 THEN ' восемьдесят' WHEN 9 THEN ' девяносто' ELSE '' END
                +CASE @d1
                  WHEN 1 THEN (CASE WHEN @th=2 OR (@th=1 AND @IsMaleGender=0) THEN ' одна' ELSE ' один' END)
                  WHEN 2 THEN (CASE WHEN @th=2 OR (@th=1 AND @IsMaleGender=0) THEN ' две' ELSE ' два' END)
                  WHEN 3 THEN ' три' WHEN 4 THEN ' четыре' WHEN 5 THEN ' пять'
                  WHEN 6 THEN ' шесть' WHEN 7 THEN ' семь' WHEN 8 THEN ' восемь'
                  WHEN 9 THEN ' девять' WHEN 10 THEN ' десять' WHEN 11 THEN ' одиннадцать' 
                  WHEN 12 THEN ' двенадцать' WHEN 13 THEN ' тринадцать' WHEN 14 THEN ' четырнадцать' 
                  WHEN 15 THEN ' пятнадцать' WHEN 16 THEN ' шестнадцать' WHEN 17 THEN ' семнадцать'
                  WHEN 18 THEN ' восемнадцать' WHEN 19 THEN ' девятнадцать' ELSE '' END
                +CASE @th
                  WHEN 2 THEN ' тысяч'     +(CASE WHEN @d1=1 THEN 'а' WHEN @d1 IN (2,3,4) THEN 'и' ELSE ''   END)
                  WHEN 3 THEN ' миллион' WHEN 4 THEN ' миллиард' WHEN 5 THEN ' триллион' WHEN 6 THEN ' квадрилион' WHEN 7 THEN ' квинтилион'
                  ELSE '' END
                +CASE WHEN @th IN (3,4,5,6,7) THEN (CASE WHEN @d1=1 THEN '' WHEN @d1 IN (2,3,4) THEN 'а' ELSE 'ов' END) ELSE '' END 
                +IsNull(@nword,'')
    END  
  END
  RETURN UPPER(SUBSTRING(@nword,2,1))+SUBSTRING(@nword,3,len(@nword)-2) 
END
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.10.2010, 13:30
Помогаю со студенческими работами здесь

текстовый эквивалент,Фибоначчи
Задача №1 Дано целое положительное число N в диапазоне от 1 до 1000. Определить его текстовый эквивалент. Например, при n=124...

Массив (Сделать программу, которая после каждой цифры в тексте вставляет в скобках её текстовый эквивалент)
Ребят, помогите с задачей. Сделать программу, которая после каждой цифры в тексте вставляет в скобках её текстовый эквивалент. Например:...

Считая последовательность 16-ричной записью натурального числа, вывести десятичный эквивалент данного числа
Пользователь вводит некоторую последовательность,состоящую только цифр 0 – 9 и букв A – F. Считая ее шестнадцатеричной записью натурального...

Эквивалент числа
Хотелось бы понять поподробнее что тут происходит. В смысле сам процесс чуть ли не по строкам. (number - введенное ранее число). //...

Вычисление 10-го эквивалент 2-го числа
Доброго времени суток. Выполняю задание написать программу переводящую число из 2-ой в 10-ую систему исчисления. Но столкнулся с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru