Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 25

Вывести строку - словесное описание данного числа (Basic -> C++)

24.01.2012, 23:52. Показов 1326. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех посетителей данного форума. Если кому не сложно помогите немного переделать задачу для С++, условие звучит так: "Дано целое число в диапазоне 100 – 999. Вывести строку — словесное описание данного числа, например: 256 — "двести пятьдесят шесть", 814 — "восемьсот четырнадцать".
Я уже был в теме преобразование числа в числительное, но не разобрался, там в С и как то сильно усложнено... я нашёл решение этой задачи, но оно написано на другом языке, кажется на BASiC'e, вот код:

PureBasic
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
$iN = InputBox("Введите", "Число")            ;Ввод числа
 
;Определим по первой цифре
Switch StringMid($iN, 1, 1)
Case 1
    $sA = 'сто '
Case 2
    $sA = 'двести '
Case 3
    $sA = 'триста '
Case 4
    $sA = 'четыреста '
Case 5
    $sA = 'пятьсот '
Case 6
    $sA = 'шестьсот '
Case 7
    $sA = 'семьсот '
Case 8
    $sA = 'восемьсот '
Case 9
    $sA = 'девятьсот '
EndSwitch
 
If (StringMid($iN, 2, 2) > 9) And (StringMid($iN, 2, 2) < 20) Then
    ;По двум последним цифрам
    Switch StringMid($iN, 2, 2)
    Case 10
        $sA &= 'десять'
    Case 11
        $sA &= 'одиннадцать'
    Case 12
        $sA &= 'двенадцать'
    Case 13
        $sA &= 'тринадцать'
    Case 14
        $sA &= 'четырнадцать'
    Case 15
        $sA &= 'пятнадцать'
    Case 16
        $sA &= 'шестнадцать'
    Case 17
        $sA &= 'семнадцать'
    Case 18
        $sA &= 'восемнадцать'
    Case 19
        $sA &= 'девятнадцать'
    EndSwitch
Else
    ;По второй цифре
    Switch StringMid($iN, 2, 1)
    Case 2
        $sA &= 'двадцать '
    Case 3
        $sA &= 'тридцать '
    Case 4
        $sA &= 'сорок '
    Case 5
        $sA &= 'пятьдесят '
    Case 6
        $sA &= 'шестьдесят '
    Case 7
        $sA &= 'семьдесят '
    Case 8
        $sA &= 'восемьдесят '
    Case 9
        $sA &= 'девяносто '
    EndSwitch
 
    ;По последней цифре
    Switch StringMid($iN, 3, 1)
    Case 1
        $sA &= 'один'
    Case 2
        $sA &= 'два'
    Case 3
        $sA &= 'три'
    Case 4
        $sA &= 'четыре'
    Case 5
        $sA &= 'пять'
    Case 6
        $sA &= 'шесть'
    Case 7
        $sA &= 'семь'
    Case 8
        $sA &= 'восемь'
    Case 9
        $sA &= 'девять'
    EndSwitch
EndIf
 
MsgBox(0, "Результат", $sA)
Не знаю, как переписать вот эти строчки под С++:
1. Switch StringMid($iN, 1, 1)
2. Switch StringMid($iN, 2, 2)
3. Switch StringMid($iN, 2, 1)
4. Switch StringMid($iN, 3, 1)

Заранее спасибо!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.01.2012, 23:52
Ответы с готовыми решениями:

Вывести строку — словесное описание данного числа
12 Дано целое число, лежащее в диапазоне от –99 до 99. Вывести строку — словесное описание данного...

Вывести строку – словесное описание указанного возраста
Дано целое число в диапазоне от 20 до 80, определяющее возраст в годах. Вывести строку – словесное...

Дано целое число в диапазоне 20 - 29, определяющее возраст (в годах). Вывести строку - словесное описание возраста
Дано целое число в диапазоне 20 - 29, определяющее возраст (в годах). Вывести строку - словесное...

2
 Аватар для cyberobot
15 / 15 / 8
Регистрация: 01.09.2011
Сообщений: 65
25.01.2012, 11:47
Лучший ответ Сообщение было отмечено HeqpuJIuM как решение

Решение

C++
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
#include <iostream>
int main()
{
    char num[4];
    cin>>num;
    switch(num[0])
    {
             case '1':
                        cout<<"сто ";
             break;
             
             case '2':
                        cout<<"двести ";
             break;
              //и так далее до 9 
    };
    switch(num[1])
    {
             case '1':
                        switch(num[2])
                        {
                                 case '1':
                                            cout<<"одиннадцать ";
                                 break;
                                 case '2':
                                            cout<<"двенадцать ";
                                 break;
                                //и так от 0 до 9
                         };
             //и так от 0 до 9
      }; 
}
0
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 25
25.01.2012, 23:20  [ТС]
Символьный массив... не подумал я что-то, что так можно... спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2012, 23:20
Помогаю со студенческими работами здесь

Вывести словесное описание заданного числа
1.Дано целое число, лежащее в диапазоне от 1 до 9999. Вывести строку – словесное описание данного...

Ввести строку - словесное описание оценки
Есть целое число в диапазоне от 1 до 5. Ввести строку - словесное описание оценки. (1 - плохо, 2 -...

Вывести словесное описание возраста, заданного цифрой
Дано целое число в диапазоне 20-69, определяющее возраст (в годах) . Вывести строку - словесное...

Сделать словесное описание числа
Дано целое число. Вывести строку — словесное описание данного числа, например: 256 — «двести...

Вывести строку-описание данного числа
Задача: Дано целое число в диапазоне 100–999. Вывести строку-описание данного числа, например: 256...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
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. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru