С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Student_123
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 5
#1

Определить, в которой из двух очередей больше согласных букв - C++

22.04.2013, 14:39. Просмотров 432. Ответов 4
Метки нет (Все метки)

1)Создать две очереди символов. Входная последовательность символов для обеих оче-редей задается пользователем с клавиатуры. Необходимо:
• распечатать обе очереди,
• определить, в которой из двух очередей больше согласных букв,
• построить новую очередь, которая является симметрической разностью двух исходных очередей, и распечатать ее,
• очистить все очереди.

помогите кто могет заранее спасибо
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 14:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить, в которой из двух очередей больше согласных букв (C++):

Определить номер той строки, в которой больше всего согласных букв - C++
Переведите, пожалуйста: Uses CRT; Var f,f2:text; s,s2:string; i,l,n1,n2,n,max,ind,c:integer; begin ...

Определить слова, в которых больше гласных букв, чем согласных - C++
В программировании пока не силен. Не могу решить 3 интересных задачки. Нужна помощь. 1) В предложении, вводимом пользователем с...

Определить, каких букв — гласных или согласных — больше в данном тексте - C++
Дан текст из цифр и строчных латинских букв, за которыми следует точка. Определить, каких букв — гласных или согласных — больше в этом...

Определить каких букв больше в строке: гласных или согласных и на сколько. - C++
1)Ввести строку А с клавиатуры состоящую из заглавных русских букв. Определить каких букв больше: гласных или согласных и на сколько....

Определить номер строки в которой больше всего гласных букв - C++
Задание: 1) Скопировать из файла F1 в файл F2 все строки, кроме той, в которой больше гласных. 2) Вивести номер этой строки. код: ...

Вывести слова, содержащие гласных букв больше, чем согласных - C++
вывести слова, содержащие гласных букв больше, чем согласных

4
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
22.04.2013, 19:22 #2
Student_123,

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
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
#include <iostream>
#include <string>
#include <queue>
#include <algorithm>
#include <iterator>
#include <vector>
 
template<typename T>
std::istream& operator>>(std::istream& ist, std::queue<T>& queue)
{
    T temp;
    typename std::queue<T>::size_type queuesize = 5, i;
    for(i = 0; i < queuesize; ++i)
    {
        std::cout << "Enter the symbol: "; 
            ist >> temp;
        queue.push(temp);
    }
 
    return ist;
}
 
template<typename T>
std::ostream& operator<<(std::ostream& ost, std::queue<T>& queue)
{
    typename std::queue<T>::size_type queuesize = queue.size(), i;
    for(i = 0; i < queuesize; ++i)
    {
        ost << queue.front() << std::endl;
        queue.push(queue.front());
        queue.pop();
    }
 
    return ost;
}
 
int main() 
{ 
    std::string str("bcdfghjklmnpqrstvwxz");
    std::queue<char> coll1, coll2, coll3;
 
    std::cout << "Enter first queue: \n";
    std::cin >> coll1;
 
    std::cout << "\nEnter second queue: \n";
    std::cin >> coll2;
 
    std::cout << "\nFirst queue: \n";
    std::cout << coll1;
 
    std::cout << "\nSecond queue: \n";
    std::cout << coll2;
 
    int count1 = std::count_if(&coll1.front(), &coll1.back() + 1, [str](char n) -> bool
        {
            bool flag(false);
            std::string::size_type i;
            for(i = 0; i < str.size(); ++i){
                if(n == str[i]){
                    flag = true;
                    break;
                }
            }
 
            return flag;
        }),
 
    count2 = std::count_if(&coll2.front(), &coll2.back() + 1, [str](char n) -> bool
        {
            bool flag(false);
            std::string::size_type i;
            for(i = 0; i < str.size(); ++i){
                if(n == str[i]){
                    flag = true;
                    break;
                }
            }
 
            return flag;
        }); 
 
    if(count1 > count2)
        std::cout << "\nIn the first queue is more consonant!\n";
    else
        std::cout << "\nIn the second queue is more consonant!\n";
 
    std::queue<char>::size_type size1(coll1.size()), size2(coll2.size()), i, j;
 
    bool flag;
    for(i = 0; i < size1; ++i){
        flag = true;
        for(j = 0; j < size1 - 1; ++j){
            if(coll1.front() == coll2.front()){
                flag = false;
                break;
            }
 
            coll2.push(coll2.front());
            coll2.pop();
        }
 
        if(flag){
            if(coll1.front() != coll2.front()){
                coll3.push(coll1.front());
            }
 
            coll2.push(coll2.front());
            coll2.pop();
        }
 
        coll1.push(coll1.front());
        coll1.pop();
    }
 
    for(i = 0; i < size2; ++i){
        flag = true;
        for(j = 0; j < size1 - 1; ++j){
            if(coll2.front() == coll1.front()){
                flag = false;
                break;
            }
 
            coll1.push(coll1.front());
            coll1.pop();
        }
 
        if(flag){
            if(coll2.front() != coll1.front()){
                coll3.push(coll2.front());
            }
 
            coll1.push(coll1.front());
            coll1.pop();
        }
 
        coll2.push(coll2.front());
        coll2.pop();
    }
 
    std::cout << "\nThird queue: \n";
    std::cout << coll3;
 
    while(!coll1.empty()){
        coll1.pop();
    }
 
    while(!coll2.empty()){
        coll2.pop();
    }
 
    while(!coll3.empty()){
        coll3.pop();
    }
 
    std::cout << "\n\n";
    return 0; 
}
1
Student_123
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 5
22.04.2013, 20:41  [ТС] #3
yoghurt92, спасибо огромнейшее, а можешь подробно расписать что где делается если не сложно, чтобы понять что к чему
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
22.04.2013, 20:52 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Student_123, ну как-то так)

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
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
167
168
169
#include <iostream>
#include <string>
#include <queue>
#include <algorithm>
#include <iterator>
#include <vector>
 
//перегруженный оператор ввода
template<typename T>
std::istream& operator>>(std::istream& ist, std::queue<T>& queue)
{
    T temp;     //промежуточная переменная (символ)
    typename std::queue<T>::size_type queuesize = 5,    //размер очереди
        i;
 
    for(i = 0; i < queuesize; ++i)          
    {
        std::cout << "Enter the symbol: "; 
            ist >> temp;                        //вводим символ
        queue.push(temp);                       //ставим в очередь
    }
 
    return ist;             //для связывания операции ввода
}
 
//перегруженный оператор вывода
template<typename T>
std::ostream& operator<<(std::ostream& ost, std::queue<T>& queue)
{
    typename std::queue<T>::size_type queuesize = queue.size(), //размер очереди
        i;
 
    for(i = 0; i < queuesize; ++i)
    {
        ost << queue.front() << std::endl;      //выводим первый
        queue.push(queue.front());              //добавляем первый в конец
        queue.pop();                            //удаляем первый
    }
 
    return ost;         //для связывания операции вывода
}
 
int main() 
{ 
    std::string str("bcdfghjklmnpqrstvwxz");        //строка с согласными буквами
    std::queue<char> coll1, coll2, coll3;           //три очереди
 
    std::cout << "Enter first queue: \n";
    std::cin >> coll1;                          //вводим очередь 1
 
    std::cout << "\nEnter second queue: \n";
    std::cin >> coll2;                          //вводим очередь 2
 
    std::cout << "\nFirst queue: \n";
    std::cout << coll1;                         //выводим очередь 1
 
    std::cout << "\nSecond queue: \n";
    std::cout << coll2;                         //выводим очередь 2
 
    //считаем кол-во согласных
    int count1 = std::count_if(&coll1.front(), &coll1.back() + 1, [str](char n) -> bool
        {
            bool flag(false);
            std::string::size_type i;
            for(i = 0; i < str.size(); ++i){
                if(n == str[i]){
                    flag = true;
                    break;
                }
            }
 
            return flag;
        }),
 
    //считаем кол-во согласных
    count2 = std::count_if(&coll2.front(), &coll2.back() + 1, [str](char n) -> bool
        {
            bool flag(false);
            std::string::size_type i;
            for(i = 0; i < str.size(); ++i){
                if(n == str[i]){
                    flag = true;
                    break;
                }
            }
 
            return flag;
        }); 
 
    //ну тут понятно
    if(count1 > count2)
        std::cout << "\nIn the first queue is more consonant!\n";
    else
        std::cout << "\nIn the second queue is more consonant!\n";
 
    std::queue<char>::size_type size1(coll1.size()), size2(coll2.size()), i, j;
 
    bool flag;
    //записывем что не вошло в воторую очередь в третью
    for(i = 0; i < size1; ++i){
        flag = true;
        for(j = 0; j < size1 - 1; ++j){
            if(coll1.front() == coll2.front()){
                flag = false;
                break;
            }
 
            coll2.push(coll2.front());
            coll2.pop();
        }
 
        if(flag){
            if(coll1.front() != coll2.front()){
                coll3.push(coll1.front());
            }
 
            coll2.push(coll2.front());
            coll2.pop();
        }
 
        coll1.push(coll1.front());
        coll1.pop();
    }
 
    //записывем что не вошло в первую очередь в третью
    for(i = 0; i < size2; ++i){
        flag = true;
        for(j = 0; j < size1 - 1; ++j){
            if(coll2.front() == coll1.front()){
                flag = false;
                break;
            }
 
            coll1.push(coll1.front());
            coll1.pop();
        }
 
        if(flag){
            if(coll2.front() != coll1.front()){
                coll3.push(coll2.front());
            }
 
            coll1.push(coll1.front());
            coll1.pop();
        }
 
        coll2.push(coll2.front());
        coll2.pop();
    }
 
    std::cout << "\nThird queue: \n";
    std::cout << coll3;                 //выводим очередь 3
 
    //очищаем очереди
    while(!coll1.empty()){
        coll1.pop();
    }
 
    while(!coll2.empty()){
        coll2.pop();
    }
 
    while(!coll3.empty()){
        coll3.pop();
    }
 
    std::cout << "\n\n";
    return 0; 
}
1
Student_123
0 / 0 / 0
Регистрация: 22.04.2013
Сообщений: 5
22.04.2013, 20:58  [ТС] #5
Спасибо дружище, выручил
0
22.04.2013, 20:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2013, 20:58
Привет! Вот еще темы с ответами:

Строки. Найти слова, в которых гласных букв больше, чем согласных - C++
Здравствуйте,нужна помощь вот в такой задачке. дано строку , для которого необходимо определить , есть ли в нем слова , в которых гласных...

В строке найти слова, в которых гласных букв больше, чем согласных - C++
В общем, такое задание : Написать программу, которая выводит на экран слова введенной с клавиатуры строки, в которых гласных букв больше...

Строка содержит произвольный русский текст. Проверить, каких букв в нем больше, гласных или согласных - C++
Строка содержит произвольный русский текст. Проверить, каких букв в нем больше, гласных или согласных. Нужно написать программу на с++ с...

Определить количество гласных и согласных букв в тексте - C++
Дан текст. Посчитать количество гласных и согласных букв,текст считывается из файла. Помогите пожалуйста


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.