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

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

Войти
Регистрация
Восстановить пароль
 
DIEZEL-man
13 / 13 / 0
Регистрация: 17.02.2013
Сообщений: 54
#1

Получить 10 наиболее часто встречающихся слов из файла - C++

04.03.2013, 19:17. Просмотров 827. Ответов 1
Метки нет (Все метки)

Дан символьный файл f, содержащий произвольный текст длиной более 50 слов. Слова в тексте разделены пробелами и знаками препинания. Получить 10 наиболее часто встречающихся слов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2013, 19:17     Получить 10 наиболее часто встречающихся слов из файла
Посмотрите здесь:

Получить 10 наиболее часто встречающихся слов в файле - C++
ребята, срочно нужна помощь в решении задачи!)) Жду , заранее спасибо:) Дан текстовый файл f, содержащий более 1000 слов. Получить 10...

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

20 наиболее часто встречающихся слов - C++
дан файл. выписать 20 наиболее часто встречающихся слов в алфавитном порядке. (структуры использовать нельзя). помогите пожалуйста. заранее...

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

Перевод с C# на С++ (в заданном тексте найти 20 наиболее часто встречающихся слов с указанием количества использования каждого из них) - C++
Помогите пожалуйста перевести с C# на С++.... Я не очень хорошо сейчас знаю библиотеку STL... Задание такое: В заданном тексте найти 20...

C++ priority_queue< int , char*, CompareHeap1 > pqMax (создать очередь с приоритетом для поиска 10 наиболее и наименее часто встречающихся слов) - C++
Выполняю задачу &quot;Частотный словарь&quot;, необходимо создать очередь с приоритетом для поиска 10 наиболее и наименее часто встречающихся слов. ...

Вывести 10 наиболее часто встречающихся чисел - C++
Нужно написать функцию, которая находит в векторе(видел с использованием map, но не понимаю особо что к чему, вектор как то ближе) 10...

Найти количество элементов, наиболее часто встречающихся в массиве - C++
Найти кол-во элементов наиболее частых встречающихся в массиве. например массив: 123000 023400 023450 003456 0-не...

Дан непустой массив из цифр. Вывести на экран цифру наиболее часто встречающихся в этом массиве. - C++
Доброго времени суток Помогите пжл с задачей Дан непустой массив из цифр. Вывести на экран цифру наиболее часто встречающихся в...

STL: Сортировка слов по количеству согласных букв; вывод слов, встречающихся в списке более одного раза - C++
Помогите написать программу!! Сортировка слов по количеству согласных букв; вывод слов, встречающихся в списке более одного раза. ...

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

Наиболее часто-встречаемая цифра - C++
Помогите пожалуйста написать программу, которая выводит на экран наиболее часто-встречаемую цифру, в введенном с клавиатуры тексте. Заранее...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
1701 / 1194 / 495
Регистрация: 12.02.2013
Сообщений: 1,978
05.03.2013, 06:50     Получить 10 наиболее часто встречающихся слов из файла #2
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
#include <iostream>
#include <iomanip>
#include <fstream>
#include <algorithm>
#include <string>
#include <map>
#include <list>
#include <cstdlib>
 
using namespace std;
 
//----------------------------------------------//
void ReadFile(ifstream& f, map<string, int>& words)
{
   char ch = 0;
   string str;
 
   while (f.eof() == false)
   {
      ch = f.get();
      if (isalpha(ch))
      {
         str += tolower(ch);
      }
      else
      {
         if (str.empty() == false)
         {
            words[str]++;
         }
         str.clear();
      }
   }
}
//----------------------------------------------//
bool WordsComparer(const std::pair<string, int>& a,
                   const std::pair<string, int>& b)
{
   return (a.second < b.second);
}
//----------------------------------------------//
void MoveTop10(map<string, int>& words, list< pair<string, int> >& top)
{
   for (unsigned i = 0; i < 10; ++i)
   {
      map<string, int>::iterator it = std::max_element(words.begin(), words.end(), WordsComparer);
 
      if (it == words.end())
      {
         return;
      }
 
      top.push_back(pair<string, int>(it->first, it->second));
      words.erase(it);
   }
}
//----------------------------------------------//
 
int main(int argc, const char* argv[])
{
   if (argc != 2)
   {
      cerr << "Usage: program <FILE.txt>" << endl;
      system("pause");
      return 1;
   }
 
   ifstream f(argv[1]);
 
   if (f.is_open() == false)
   {
      cerr << "Error: file " << argv[1] << " not opened ..." << endl;
      return 1;
   }
 
   map<string, int> words;
 
   ReadFile(f, words);
 
   list< pair<string, int> > top;
 
   MoveTop10(words, top);
 
   cout << "Top 10:" << endl;
   for (list< pair<string, int> >::iterator it = top.begin(); it != top.end(); ++it)
   {
      cout << setw(8) << it->second << "  " << it->first << endl;
   }
 
   return 0;
}
Название: image.PNG
Просмотров: 125

Размер: 4.3 Кб

Бинарник + исходник: program.7z
Yandex
Объявления
05.03.2013, 06:50     Получить 10 наиболее часто встречающихся слов из файла
Ответ Создать тему
Опции темы

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