Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 76
1

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

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

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

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

Задача 808в
Дан текст. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть, как прежде (см. задачу 269), словами.
в) Найти все слова, в которых доля букв a, b максимальна.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2013, 14:17
Ответы с готовыми решениями:

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

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

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

Найти слова,в которых доля букв a,b максимальна.
Помогите пожалуйста написать задачу: Дан текст.Группы слов,разделенные пробелами(одним или...

3
интересующийся
307 / 278 / 93
Регистрация: 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
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 76
01.02.2013, 02:35  [ТС] 3
Большое спасибо за помощь!

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

0
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 76
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2013, 01:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти в тексте все слова, в которых доля "а", "в" максимальна; удалить эти слова из текста
Дан текст.Найти все слова,в которых доля &quot;а&quot;,&quot;в&quot; максимальна, затем удалить эти слова из текста.

Найти слова, в которых доля определенных букв минимальна
Всем огромный приветик! Помогите, пожалуйста с этим Паскалем.... Дана строка. Группы символов,...

Выдать слова, в которых доля цифр максимальна и посчитать количество этих слов
var i,k,f,m,r:integer; max:real; s:string; a:array of string; begin readln(s); k:=1; for...

Найти слова, в которых доля букв "а" и "е" минимальна
Дана строка. Группы символов, разделенные пробелами и не содержащие пробелов внутри себя,...


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

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

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