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

Помощь с переводом

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

Author24 — интернет-сервис помощи студентам
Приветствую всех посетителей данного форума. Если кому не сложно помогите немного переделать задачу для С++, условие звучит так: "Дано целое число в диапазоне 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2012, 23:52
Ответы с готовыми решениями:

переводом бд
Есть база данных Acces ее нужно перевести в формат firebird. Проблема заключается в том когда...

Трудности с переводом
Достаточно часто при чтении буржуйских книг встречаются трудные моменты в понимании. Особенно для...

сложности с переводом
пожалуйста...если кто знает..как на латыни будет &quot;Анастасия - священная любовь...&quot; если не в этот...

Помогите с переводом!
Пожалуйста, помогите перевести &quot;run sensitivities&quot;! Контекст следующий: This chapter shows how to...

2
15 / 15 / 8
Регистрация: 01.09.2011
Сообщений: 65
25.01.2012, 11:47 2
Лучший ответ Сообщение было отмечено 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  [ТС] 3
Символьный массив... не подумал я что-то, что так можно... спасибо большое!
0
25.01.2012, 23:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2012, 23:20
Помогаю со студенческими работами здесь

Проблема с переводом в C++
Привет всем! Пытаюсь перевести код из Matlaba в C++. Вот код с которым проблема: N =...

Помогите с переводом
писал все время на MS Visual Studio, а тут надо на Builder 5.0 вот код в MSVS 2010...

Проблемы с переводом Joomla 1.5
Здравствуйте. Задача стоит в том, чтобы добавить регистрацию и добавить перевод на англ. язык +...

Преобразование типов с переводом в 10 СС
Всем привет. Есть переменная типа char в которой хранится примерно следующее: 1A17, что в 10...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru