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

Генератор слов для телефонного номера - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вызов метода из метода http://www.cyberforum.ru/cpp-beginners/thread331737.html
Можно ли вызвать метод из метода. Это программа не работает #include<iostream> using namespace std; class a {private: int b,c,d; public: void fc() {cout<<"Функция намбер ван"<<endl;} void fc2()
C++ работа с файлами Здравствуйте! Мне надо написать программу которая будет: Каждую минуту/две/десять/двадцать проверять файл на изменения. Если изменения произошли то будет копировать его 3и4 строки/2и5 (без разницы) и записывать их в новую строку таблицы.. Попробовал что-то зделать но даже этот код выдаёт ошибку, то ли у меня руки не из того места. Помогите пожалуйста написать такую программу. #include... http://www.cyberforum.ru/cpp-beginners/thread331736.html
C++ Поиск книги
Видел в магазине эту книгу, хотел скачать в интернете ее, но никак не могу найти. Помогите... Герберт Шилдт С++ Шаг за шагом Запрещено давать ссылки на скачивание программ и книг с файлообменников (рапида, депозит и т.п.) и других сайтов (форумов), если есть возможность их скачать с сайтов фирм-производителей. Правила форума, пункт 3.10
строка символов C++
не понимаю как решить задачу решите пожалуйста если не трудно заранее спасибо. Дана строка символов S. Выяснить имеется ли в строке такие числа последовательности Sj ,Sj+1, что Sj-это запятая, а Sj+1 - тире
C++ Исправление ошибок в программе http://www.cyberforum.ru/cpp-beginners/thread331714.html
vector<int>v; int x; while(cin>>x) v.push_back(x); for(int i=0; i<v.size(); ++i); cout << "v == " << v << endl; keep_window_open(); В 4 строке warning C4018: '<' : signed/unsigned mismatch - как это можно исправить? В 5 строке - 'i' : undeclared identifier. Но ведь я ее объявил в for? Нет уж, один вопрос - одна тема, тем более что ваш вопрос никакого отношения к вопросу,...
C++ дано целое число N программа на Си помогите решить дано целое число N (Nmax=5). Дан вектор целых чисел x.Выяснить имеются ли в векторе элементы удовлетворяющие условию i+1<ai<i! за ранее спасибо подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2800 / 1576 / 246
Регистрация: 03.05.2010
Сообщений: 3,658
12.07.2011, 15:30     Генератор слов для телефонного номера
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
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
/////////////////////////////////////////////////////////////////////////////////////////
//Вот такая вот интересная задачка у Дейтела есть:
//17.13. (Генератор слов для телефонного номера) Стандартный набор кнопок телефона
//содержит цифры от 0 до 9. Каждая цифра от 2 до 9 имеет связанные с ней три
//буквы, что отражено в следующей таблице:
//
//Цифра - Буква
//2 - ABC
//3 - DEF
//4 - GHI
//5 - JKL
//6 - MNO
//7 - PRS
//8 - TUV
//9 - XYZ
//
//Многие люди с трудом запоминают номера телефонов, поэтому они используют
//соответствие между цифрами и буквами, чтобы подобрать слово из семи букв,
//которое соответствовало бы телефонному номеру. Например, человек,
//телефонный номер которого 686-2377, может воспользоваться подобной таблицей и
//подобрать семибуквенное слово «NUMBERS».
//Предприниматели часто пытаются получить номер телефона, который было бы
//легко запомнить их клиентам. Если предприниматель сможет поместить в
//рекламе простое слово, по которому клиенты могли бы звонить в его контору, тогда,
//вне всяких сомнений, звонков будет несколько больше.
//Каждое слово из семи букв соответствует ровно одному телефонному номеру.
//Ресторан, желающий увеличить количество заказов на дом, безусловно сможет
//сделать это, если его номер 825-3688 (т.е. «TAKEOUT»).
//Каждому из семизначных номеров соответствует множество слов из семи букв.
//К сожалению, большинство из них представляет собой бессмысленные
//комбинации букв. Возможно, однако, что владелец парикмахерской был бы приятно
//удивлен, узнав, что его телефон 424-7288 соответствует «HAIRCUT». Владелец
//магазина, торгующего алкоголем, обрадуется, обнаружив, что телефон магазина
//233-7226 соответствует «BEERCAN». Ветеринар, телефонный номер которого
//738-2273, будет рад узнать, что этот номер соответствует слову «PETCARE».
//Обработка файлов
//1031
//Напишите программу на С++, которая для данного семизначного числа записывает
//в файл все возможные слова из семи букв, соответствующие этому номеру.
//Существует 2187 (три в седьмой степени) таких слов. Избегайте телефонных номеров
//с цифрами 0 и 1. 
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <cmath>
#include <string>
#include <vector>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string          T_word;
typedef std::vector<T_word>  T_words;
/////////////////////////////////////////////////////////////////////////////////////////
T_words  get_words_of_num(const T_word&  s_num)
{
    T_words     res_words;
    const int   letters_for_dig            = 3;
    const char  first_dig                  = '2';
    const char  first_letter_of_first_dig  = 'A';
    int         words_total                
                    = int( pow( double(letters_for_dig), int(s_num.size()) ) );
    for(int  i = 0; i < words_total; ++i)
    {        
        int     j = i;        
        T_word  word_cur;
        for(T_word::const_iterator  dig_it = s_num.begin(); dig_it != s_num.end(); ++dig_it)
        {
            char symb_cur =   (*dig_it - first_dig) * letters_for_dig 
                            + first_letter_of_first_dig + j % letters_for_dig;
 
            if(symb_cur >= 'Q') ++symb_cur;
            if(symb_cur >= 'W') ++symb_cur;
                            
            word_cur.push_back(symb_cur);            
            j /= letters_for_dig;
        }
        res_words.push_back(word_cur);
    }
    return  res_words;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale("")); 
    std::cout << "Введите число, не содержащее нулей и единиц:"
              << std::endl;
    T_word  s_num;
    std::cin >> s_num;
    T_words  words_of_num( get_words_of_num(s_num) );    
    std::copy(words_of_num.begin(), words_of_num.end(),
              std::ostream_iterator<T_word>(std::cout, "\n"));
}
 
Текущее время: 22:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru