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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Цифры и числа! http://www.cyberforum.ru/cpp-beginners/thread109337.html
Для заданного М вывести все: а) квадраты натуральных чисел, не превосходящие М; б) факториалы натуральных чисел, не превосходящие М; в) целые степени данного числа К, не превосходящие М. не...
C++ составить блок схемы к программам 1) При температуре воздуха зимой до -20 ◦ С потребления угля тепловой станцией составляет 50 тонн в день. При температуре воздуха от -20 ◦ С до -30 ◦ С ежедневное потребление угля увеличивается на 5... http://www.cyberforum.ru/cpp-beginners/thread109334.html
C++ Найти квадратную подматрицу максимального размера
Ввести матрицу, которая состоит из 0 и 1. Найти в ней квадратную подматрицу максимального размера, элементы которой имеют значение 1. Добавлено через 22 часа 27 минут
посмотрите задания такого рода C++
посмотрите задания такого рода
C++ В строке символов определить слово с максимальным количеством согласных и переставить его буквы в соответствии с алфавитом http://www.cyberforum.ru/cpp-beginners/thread109330.html
В строке символов определить слово с максимальным количеством согласных и переставить его буквы в соответствии с алфавитом. Каждую букву на парной позиции слова напечатать большими буквами. ...
C++ Программа на строки Здравствуйте,помогите мне,пожалуйста,написать программу на С++. Даны две строчки,с помощью функции strcpy копировать из сточки sp,такое количетство символов в строку si согласно введенному нами... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
27.03.2010, 16:01
Я так понял, что относительная частота - это отношение числа вхождений слова в строку к общему числу слов в строке:
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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.