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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.60
chro
2 / 2 / 0
Регистрация: 22.06.2009
Сообщений: 31
#1

Частотный анализ текста (пословный) - C++

27.03.2010, 12:57. Просмотров 3286. Ответов 6
Метки нет (Все метки)

24. Частотный анализ текста (пословный). (Подсчитывается относительная частота встречаемости каждого слова в тексте; границами слов являются символы: точка, запятая, двоеточие, точка с запятой, пробел, скобки, тире, вопросительный и восклицательный знаки.)
Текст вводится с клавиатуры, должна быть возможность записи его в файл; вывод результатов на экран, принтер или в файл по желанию пользователя.
Если возможно с блок-схемой.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2010, 12:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Частотный анализ текста (пословный) (C++):

Частотный анализ текста - C++
Вообщем задача, Есть текст в файле, необходимо определить, какие символы и сколько раз встречаются в тексте. Упорядочить их в порядке...

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

Частотный анализ текста (символьный) - C++
Частотный анализ текста (символьный). (Подсчитывается относительная частота встречаемости каждого символа в тексте.) Текст вводится из...

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

Частотный анализ - C++
#include<stdio.h> int Count(char *fname, int *count) { FILE *f; char c; if ((f = fopen(fname, "r")) == NULL) ...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
27.03.2010, 16:01 #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
#include <iostream>
#include <map>
#include <string>
#include <sstream>
#include <iomanip>
 
int main()
{
    setlocale(LC_ALL, "Russian");
    std::string delim(".:,;()-?!");//Разделители
    std::string string;
    //Ассоциативный контейнер, хранит пары (слово, число вхождений)
    std::map<std::string, size_t> freq;
    std::cout << "Введите строку" << std::endl;
    std::getline(std::cin, string);
    size_t str_count=0;//Число слов
    //Замена символов-разделителей из строки на пробел
    size_t index;
    while((index=string.find_first_of(delim))!=std::string::npos)
        string[index]=' ';
    //Разбиение строки на слова, помещение слов в ассоциативный контейнер и подсчет числа вхождений слова в строку
    std::stringstream ss(string);
    while(ss >> string)
    {
        ++str_count;
        freq[string]++;
    }
    std::cout << "Относительная частота вхождения каждого слова:" << std::endl;
    for(std::map<std::string, size_t>::iterator iter=freq.begin(); iter!=freq.end(); ++iter)
    {
        double p=static_cast<double>(iter->second)/static_cast<double>(str_count)*100;
        std::cout << "\'" << iter->first << "\': " << std::setprecision(4) << p << "%" << std::endl;
    }
    system("pause");
    return 0; 
}
1
chro
2 / 2 / 0
Регистрация: 22.06.2009
Сообщений: 31
28.03.2010, 22:27  [ТС] #3
большое количество ошибок выдаёт Borland
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
28.03.2010, 22:58 #4
какая версия борланда?
0
chro
2 / 2 / 0
Регистрация: 22.06.2009
Сообщений: 31
29.03.2010, 15:48  [ТС] #5
Borland C++ 3.0
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
29.03.2010, 22:31 #6
в нем нет поддержки пространств имен, поставьте что-нибудь новее Бесплатные среды (IDE) для программирования на С/С++
1
chro
2 / 2 / 0
Регистрация: 22.06.2009
Сообщений: 31
30.03.2010, 02:47  [ТС] #7
благодарю
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2010, 02:47
Привет! Вот еще темы с ответами:

Частотный анализ байтов файла - C++
Помогите написать программу Вводятся имя файла произвольного содержания не длиннее 32 Кбайт и число k (k = 1...9) - см. ниже....

Частотный анализ. Криптоанализ шифра замены. С++ - C++
Доброго времени суток. Задача состоит в следующем: &quot;Дан зашифрованный файл, методом замены. Ключа и открытого текста нет. Надо...

Частотный анализ для шифра Цезаря - C++
Добрый день! Нужно было написать программу,которая кодирует шифр Цезаря. Это есть: #include &lt;iostream&gt; using namespace std; int...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.03.2010, 02:47
Ответ Создать тему
Опции темы

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