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

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

Восстановить пароль Регистрация
 
Dark-VIN
 Аватар для Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
31.01.2013, 14:17     Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна) #1
Добрый день. Задали решить пару задач из задачника Абрамова. Только условия вообще не могу понять! Помогите, пожалуйста, чем-нибудь!! Заранее благодарен!!

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

Задача 808в
Дан текст. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть, как прежде (см. задачу 269), словами.
в) Найти все слова, в которых доля букв a, b максимальна.
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++ Дан текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв. Напечатать все слова, отличные от последнего слова
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
31.01.2013, 15:48     Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна) #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;
}
Dark-VIN
 Аватар для Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
01.02.2013, 02:35  [ТС]     Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна) #3
Большое спасибо за помощь!

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

Dark-VIN
 Аватар для Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
01.05.2013, 01:48  [ТС]     Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна) #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;
}

- ПОЖАЛУЙСТА, НАБРОСАЙТЕ БЛОК СХЕМУ!!!
Yandex
Объявления
01.05.2013, 01:48     Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна)
Ответ Создать тему
Опции темы

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