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

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

Войти
Регистрация
Восстановить пароль
 
Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
#1

Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна) - C++

31.01.2013, 14:17. Просмотров 489. Ответов 3
Метки нет (Все метки)

Добрый день. Задали решить пару задач из задачника Абрамова. Только условия вообще не могу понять! Помогите, пожалуйста, чем-нибудь!! Заранее благодарен!!

Тема: Программирование задач по обработке последовательности символов.

Задача 808в
Дан текст. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть, как прежде (см. задачу 269), словами.
в) Найти все слова, в которых доля букв a, b максимальна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2013, 14:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна) (C++):

Найти все слова, в которых доля букв a, b максимальна - C++
Дан текст.Группы слов,разделенные пробелами(одним или несколькими) и не содержащие пробелов внутри себя,будем называть, как и прежде...

Найти все слова,в которых доля букв a,b максимальна. - C++
Дан текст.Группы слов,разделенные пробелами(одним или несколькими) и не содержащие пробелов внутри себя,будем называть, как и прежде...

Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки) - C++
Добрый день. Задали решить пару задач из задачника Абрамова. Только условия вообще не могу понять! Помогите, пожалуйста, чем-нибудь!!...

Вывести все слова длина которых максимальна - C++
#include <iostream.h> #include <stdio.h> #include <windows.h> int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); char...

Найти все слова, в которых совпадает 3 и более букв - C++
Найти в тексте все слова, в которых совпадает 3 и более букв. Текст вводится с клавиатуры функцией gets(char *) Помогите срочно....

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

3
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
31.01.2013, 15:48 #2
Цитата Сообщение от Dark-VIN Посмотреть сообщение
в) Найти все слова, в которых доля букв a, b максимальна.
Я не пойму о чём мог/могла думать ваш/ваша Абрамова, когда трактовал/трактвала такое условие... "Доля букв максимальна", но по отношению к чему? По отношению к предыдущим словам в предложении или по отношению к семантическому составу каждого слова? Или ещё к чему-нибудь?
Более-мение логичен вариант с максимальным вхожденимем символов 'a' и 'b' в слово (Т.е найти слово в предложении с максимальным вхождением символов 'a' и 'b'):
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
// Программа ищет слово с максимальным вхождением символов 'a' и 'b'
 
#include <iostream>
#include <string>
#include <cstring>
#include <vector>
using namespace std;
 
int main()
{
    string text;
    vector<string> line;
 
    // Воводим строку в стиле С++
    cout << "Put some text: ";
    getline(cin, text);
 
    // Копируем строку в стиле С++ в строку в стиле С для обработки на токены
    char* p_text = new char[text.size()+1];
    strcpy(p_text, text.c_str());
    char* ptr = strtok(p_text, " \n\b\t");
 
    // Заносим в вектор слова
    while (ptr) {
        line.push_back(ptr);
        ptr = strtok('\0', " \n\b\t");
    }
 
    // Находим максимально вхождение символов 'a' и 'b',
    // и при успехе укавываем на него итератором
    int count;
    int max = 0;
    vector<string>::const_iterator result = line.end();
    for (vector<string>::const_iterator i = line.begin(); i != line.end(); ++i) {
        count = 0;
        for (string::const_iterator j = (*i).begin(); j != (*i).end(); ++j)
            if (*j == 'a' || *j == 'b')
                ++count;
        if (count > max) {
            max = count;
            result = i;
        }
    }
 
    // Отображаем слово при помощи итератора
    (result != line.end()) ?
        (cout << "Word which have maximum 'a' and/or 'b' character is: \"" << *result << "\".\n") :
        (cout << "No found\n");
 
    delete [] p_text; // "удаляем" временный массив
 
    return 0;
}
2
Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
01.02.2013, 02:35  [ТС] #3
Большое спасибо за помощь!

Цитата Сообщение от xtorne21st Посмотреть сообщение
Я не пойму о чём мог/могла думать ваш/ваша Абрамова, когда трактовал/трактвала такое условие...
Это дословно из задачника:

0
Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
01.05.2013, 01:48  [ТС] #4
Code

Цитата Сообщение от xtorne21st Посмотреть сообщение
Я не пойму о чём мог/могла думать ваш/ваша Абрамова, когда трактовал/трактвала такое условие... "Доля букв максимальна", но по отношению к чему? По отношению к предыдущим словам в предложении или по отношению к семантическому составу каждого слова? Или ещё к чему-нибудь?
Более-мение логичен вариант с максимальным вхожденимем символов 'a' и 'b' в слово (Т.е найти слово в предложении с максимальным вхождением символов 'a' и 'b'):
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
// Программа ищет слово с максимальным вхождением символов 'a' и 'b'
 
#include <iostream>
#include <string>
#include <cstring>
#include <vector>
using namespace std;
 
int main()
{
    string text;
    vector<string> line;
 
    // Воводим строку в стиле С++
    cout << "Put some text: ";
    getline(cin, text);
 
    // Копируем строку в стиле С++ в строку в стиле С для обработки на токены
    char* p_text = new char[text.size()+1];
    strcpy(p_text, text.c_str());
    char* ptr = strtok(p_text, " \n\b\t");
 
    // Заносим в вектор слова
    while (ptr) {
        line.push_back(ptr);
        ptr = strtok('\0', " \n\b\t");
    }
 
    // Находим максимально вхождение символов 'a' и 'b',
    // и при успехе укавываем на него итератором
    int count;
    int max = 0;
    vector<string>::const_iterator result = line.end();
    for (vector<string>::const_iterator i = line.begin(); i != line.end(); ++i) {
        count = 0;
        for (string::const_iterator j = (*i).begin(); j != (*i).end(); ++j)
            if (*j == 'a' || *j == 'b')
                ++count;
        if (count > max) {
            max = count;
            result = i;
        }
    }
 
    // Отображаем слово при помощи итератора
    (result != line.end()) ?
        (cout << "Word which have maximum 'a' and/or 'b' character is: \"" << *result << "\".\n") :
        (cout << "No found\n");
 
    delete [] p_text; // "удаляем" временный массив
 
    return 0;
}

- ПОЖАЛУЙСТА, НАБРОСАЙТЕ БЛОК СХЕМУ!!!
0
01.05.2013, 01:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2013, 01:48
Привет! Вот еще темы с ответами:

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

Найти слово, в котором доля гласных (a, e, i, o, u, y) максимальна - C++
Доброго времени суток! Собственно начну с задания: Разработать программу, определяющую во введенном тексте на английском языке слово, в...

Найти и вывести все слова, у которых число гласных букв превышает число согласных - C++
Задание: Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Символами могут быть только заглавные...

Дан текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв. Напечатать все слова, отличные от последнего слова - C++
дан текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв, между соседними словами - не менее одного пробела....


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

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

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