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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.74
STRAG 92
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 59
#1

Составить частотный словарь вводимого текста - C++

18.11.2011, 08:35. Просмотров 2683. Ответов 6
Метки нет (Все метки)

Составить частотный словарь вводимого текста (несколько строк) тоесть распечатать строку следующим образом: справа от каждого слова-частоту, с которой оно встретилось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2011, 08:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Составить частотный словарь вводимого текста (C++):

Составить частотный словарь вводимого текста - C++
14. Составить частотный словарь вводимого текста. Распечатать его по алфавиту, а справа от каждого слова – частоту, с которой оно...

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

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

Частотный словарь. - C++
здравствуйте помогите плиз решить последнюю задачу для зачета.вот условие: дан текст.получить сколько раз в нем присутствует каждое...

Частотный словарь приставок - C++
Помогите пожалуйста, нужно составить частотный словарь приставок, имеющегося текстового файла. Я написала программу, но сразу же при...

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

6
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
18.11.2011, 10:00 #2
Используем
C++
1
std::map < std::string, int >
Выделяем слово из строки, и кладем в карту, увеличивая счетчик количества
C++
1
m [ word ]++;
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.11.2011, 10:06 #3
Можно написать красивый алгоритм с использованием дерева поиска. В итоге выводится на экран частотный словарь всех слов в лексикографическом порядке.
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
18.11.2011, 10:28 #4
Thinker, предложенный вариант также даёт частотный словарь всех слов в лексикографическом порядке))
Вот, кстати, полный код:
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
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <map>
 
int main()
{
    std::string text;
    std::string str;
 
    std::ifstream fin("input.txt");
 
    while (std::getline(fin, str))
        text += ' ' + str;
 
    fin.close();
 
    std::istringstream istr(text);
 
    std::map< std::string, size_t > freq_dict;
    std::string word;
 
    while (istr >> word)
        ++freq_dict[word];
 
    for (std::map< std::string, size_t >::const_iterator it = freq_dict.begin();
         it != freq_dict.end();
         ++it)
         std::cout << it->first << " : " << it->second << std::endl;
 
    return 0;
}
1
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.11.2011, 10:46 #5
silent_1991, это я понял, надо было уточнить, что речь шла о реализации в Си, ибо очень нравится не пользоваться готовыми классами, а прописывать все ручками, если есть на это время, полезно очень)

Тем более, ТС не уточнил какой язык ему нужен, а делается это заранее.
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
18.11.2011, 10:51 #6
Цитата Сообщение от Thinker Посмотреть сообщение
Тем более, ТС не уточнил какой язык ему нужен
Ну это уже его проблемы.

Цитата Сообщение от Thinker Посмотреть сообщение
очень нравится не пользоваться готовыми классами, а прописывать все ручками
Я в своё время столько этих велосипедов написал, что теперь как-то не тянет
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.11.2011, 11:05 #7
Да, но иногда бывает так, что при написании вроде бы знакомого и стандартного алгоритма понимаешь, что можно вот такой то кусок применить совсем в другой задаче, а этот вообще оптимизировать и получается нечто интересное вообще у меня порой мания свести сложность алгоритма к минимуму, как, например, здесь
http://www.cyberforum.ru/showthread.php?p=2067150
А здесь, например, это удалось сделать:
http://www.cyberforum.ru/showthread.php?p=2132969
А ведь свести алгоритм к минимальной сложности не всегда очень просто, даже наоборот, порой очень сложно.
0
18.11.2011, 11:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2011, 11:05
Привет! Вот еще темы с ответами:

Частотный словарь слогов из двух произвольных символов - C++
Ребята помогите разобраться с частотным словарем слов. Нужно написать курсовую на эту тему. Мб какие ссылки дадите.

алфовитно-частотный словарь новый элемнт добавить в голову - C++
алфавитно-частотный словарь. задание:новый элемент добавить в голову. помогите пожалуйста составить программу:)очень срочно нужно к...

Алфавитно-частотный словарь на основе односвязного списка с применением токенов - C++
Здравствуйте, дорогие форумчане! Возникла задача создать алфавитно-частотный словарь на основе односвязного списка с применением токенов....

Частотный словарь из слов текстового файла в виде дерева двоичного поиска - C++
Задача: Построить частотный словарь из слов текстового файла в виде дерева двоичного поиска. Вывести его на экран в виде дерева....


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

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

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