Форум программистов, компьютерный форум CyberForum.ru

Не могу дописать программу преобразующую слова в цифры - C++

Восстановить пароль Регистрация
 
ProProger
6 / 2 / 0
Регистрация: 19.09.2012
Сообщений: 95
07.11.2012, 13:41     Не могу дописать программу преобразующую слова в цифры #1
Здравствуйте форумчане у меня есть к вам вопрос насчет одной программы.

Задача: Напишите программу, преобразующую слова "нуль", "два" и т.д в цифры 0, 2 и т.д. Когда пользователь вводит число в виде слова, программа должна вывести на экран соответствующую цифру. Выполните эту программу для цифр 0, 1, 2, 3 и 4. Если пользователь введет что-нибудь другое например фразу "глупый компьютер!", программа должна ответить "Я не знаю такого числа!"

Я решил ее так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "std_lib_facilities.h"
int main()
{
    setlocale( LC_ALL,"Russian" );
    string slovo;
    cout << "Введите слово\n";
    cin >> slovo;
    if(slovo == "nul")
        cout << "0";
    if(slovo == "odin")
        cout << "1";
    if(slovo == "dva")
        cout << "2";
    if(slovo == "tri")
        cout << "3";
    if(slovo == "cetire")
        cout << "4";
    system("pause");
    return 0;
}
Но вот в чем загвоздка нужно еше чтобы программа отвечала что не знает такого числа если ввожу что то другое если тут else применить то оно только к одному if применится. Так вот могли бы вы написать как решить эту программу чтобы соблюдалось условие "Если пользователь введет что-нибудь другое например фразу "глупый компьютер!", программа должна ответить "Я не знаю такого числа!""

Буду очень благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2012, 13:41     Не могу дописать программу преобразующую слова в цифры
Посмотрите здесь:

C++ не могу дописать функцию перевода текста на 2сс,не могу возвращать переведенный текст
Преобразовать строку таким образом, чтобы цифры каждого слова были перенесены в начало слова без изменения порядка следования их в слове C++
Не могу дописать программу. Двумерный массив C++
C++ не могу дописать программу! осталось условие на нахождение наибольшего из трёх чисел!
C++ Нужно написать программу преобразующую данные в машинный вид
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
strange_man
 Аватар для strange_man
9 / 9 / 0
Регистрация: 17.05.2012
Сообщений: 117
07.11.2012, 13:44     Не могу дописать программу преобразующую слова в цифры #2
а оператор switch?
ProProger
6 / 2 / 0
Регистрация: 19.09.2012
Сообщений: 95
07.11.2012, 13:50  [ТС]     Не могу дописать программу преобразующую слова в цифры #3
Цитата Сообщение от strange_man Посмотреть сообщение
а оператор switch?
Читаю "Программирование. Принципы и практика использования C++" уже на 119 странице и первый раз про такой слышу а можно как то if'ами и else'ами?
sanchoflat
4 / 6 / 1
Регистрация: 05.11.2011
Сообщений: 97
07.11.2012, 13:58     Не могу дописать программу преобразующую слова в цифры #4
ну так else и используй
C++
1
2
3
4
5
6
7
8
9
10
11
12
string slovo;
cout << "Введите слово\n";
cin >> slovo;
 if(slovo == "nul")
  cout << "0";
else if ( slovo == "odin" )
cout<<"1";
else if() ..
....
...
else  
cout << "такого числа нет";
strange_man
 Аватар для strange_man
9 / 9 / 0
Регистрация: 17.05.2012
Сообщений: 117
07.11.2012, 14:02     Не могу дописать программу преобразующую слова в цифры #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "std_lib_facilities.h"
int main()
{
    setlocale( LC_ALL,"Russian" );
    string slovo;
    cout << "Введите слово\n";
    cin >> slovo;
 
    if(slovo == "nul")
        cout << "0";
    else if(slovo == "odin")
        cout << "1";
    else if(slovo == "dva")
        cout << "2";
    else if(slovo == "tri")
        cout << "3";
    else if(slovo == "cetire")
        cout << "4";
    else 
        cout << "Я не знаю такого числа!" << endl;
    system("pause");
    return 0;
}
ProProger
6 / 2 / 0
Регистрация: 19.09.2012
Сообщений: 95
07.11.2012, 14:02  [ТС]     Не могу дописать программу преобразующую слова в цифры #6
Цитата Сообщение от sanchoflat Посмотреть сообщение
ну так else и используй
C++
1
2
3
4
5
6
7
8
9
10
11
12
string slovo;
cout << "Введите слово\n";
cin >> slovo;
 if(slovo == "nul")
  cout << "0";
else if ( slovo == "odin" )
cout<<"1";
else if() ..
....
...
else  
cout << "такого числа нет";
Блин чето я не допер как все это работает?
ProProger
6 / 2 / 0
Регистрация: 19.09.2012
Сообщений: 95
07.11.2012, 14:04  [ТС]     Не могу дописать программу преобразующую слова в цифры #7
Цитата Сообщение от strange_man Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "std_lib_facilities.h"
int main()
{
    setlocale( LC_ALL,"Russian" );
    string slovo;
    cout << "Введите слово\n";
    cin >> slovo;
 
    if(slovo == "nul")
        cout << "0";
    else if(slovo == "odin")
        cout << "1";
    else if(slovo == "dva")
        cout << "2";
    else if(slovo == "tri")
        cout << "3";
    else if(slovo == "cetire")
        cout << "4";
    else 
        cout << "Я не знаю такого числа!" << endl;
    system("pause");
    return 0;
}
ага спс а если я так сделал(сам) это плохо:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "std_lib_facilities.h"
int main()
{
    setlocale( LC_ALL,"Russian" );
    string slovo;
    cout << "Введите слово\n";
    cin >> slovo;
    if(slovo == "nul")
        cout << "0";
    if(slovo == "odin")
        cout << "1";
    if(slovo == "dva")
        cout << "2";
    if(slovo == "tri")
        cout << "3";
    if(slovo == "cetire")
        cout << "4";
    if(slovo != "nul" && slovo != "odin" && slovo != "dva" && slovo != "tri" && slovo != "cetire")
        cout << "Я незнаю такого числа";
    system("pause");
    return 0;
}
sanchoflat
4 / 6 / 1
Регистрация: 05.11.2011
Сообщений: 97
07.11.2012, 14:05     Не могу дописать программу преобразующую слова в цифры #8
можно, но тебе приходится перечислять все возможные цифры, а так - лишний else
strange_man
 Аватар для strange_man
9 / 9 / 0
Регистрация: 17.05.2012
Сообщений: 117
07.11.2012, 14:06     Не могу дописать программу преобразующую слова в цифры #9
Цитата Сообщение от ProProger Посмотреть сообщение
ага спс а если я так сделал(сам) это плохо:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "std_lib_facilities.h"
int main()
{
    setlocale( LC_ALL,"Russian" );
    string slovo;
    cout << "Введите слово\n";
    cin >> slovo;
    if(slovo == "nul")
        cout << "0";
    if(slovo == "odin")
        cout << "1";
    if(slovo == "dva")
        cout << "2";
    if(slovo == "tri")
        cout << "3";
    if(slovo == "cetire")
        cout << "4";
    if(slovo != "nul" && slovo != "odin" && slovo != "dva" && slovo != "tri" && slovo != "cetire")
        cout << "Я незнаю такого числа";
    system("pause");
    return 0;
}
да, так больше писанины, и программа будет медленнее работать, потому что будет каждое условие проверять
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2012, 14:11     Не могу дописать программу преобразующую слова в цифры
Еще ссылки по теме:

C++ В числе *4**3 дописать три цифры так, чтобы полученное число делилось на 15
C++ Я новичок , не могу дописать программу
C++ Заменить слова обозначающие цифры на цифры (от 1 до 9)

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

Или воспользуйтесь поиском по форуму:
ProProger
6 / 2 / 0
Регистрация: 19.09.2012
Сообщений: 95
07.11.2012, 14:11  [ТС]     Не могу дописать программу преобразующую слова в цифры #10
Цитата Сообщение от sanchoflat Посмотреть сообщение
можно, но тебе приходится перечислять все возможные цифры, а так - лишний else
Цитата Сообщение от strange_man Посмотреть сообщение
да, так больше писанины, и программа будет медленнее работать, потому что будет каждое условие проверять

Спасибо вам короче
Yandex
Объявления
07.11.2012, 14:11     Не могу дописать программу преобразующую слова в цифры
Ответ Создать тему
Опции темы

Текущее время: 03:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru