Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 80

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

04.06.2019, 15:52. Показов 2323. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан символьный файл f, содержащий произвольный текст. Получить 10 наиболее часто встречающихся букв и число их появления. Исходная информация береться из текстового файла и после преобразования записывалась в другой текстовый файл.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.06.2019, 15:52
Ответы с готовыми решениями:

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

Дан символьный файл, содержащий произвольный текст длиной более 5000 слов. Слова разделены пробелами и знаками препинания. Получить 100 наиболее часто
НАРОД срочно нужно написать на паскале : Дан символьный файл, содержащий произвольный текст длиной более 5000 слов. Слова разделены...

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

16
694 / 7086 / 265
Регистрация: 11.08.2016
Сообщений: 3,974
04.06.2019, 17:26
Именно букв? И если да, то каких, русских, латинских? Или символов вообще?
0
0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 80
04.06.2019, 20:27  [ТС]
текст дан произвольный, и из этого произвольного текста 10 наиболее часто встречающихся латинских букв записать во второй файл.
0
0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 80
05.06.2019, 15:56  [ТС]
Вот ищет для 1 буквы, нужно для 10, не пойму как зациклить чтоб учитывались и предыдущие

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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main()
{    setlocale(LC_ALL, "Russian");
    size_t letters[256] = { 0 };
    ifstream f("f.txt");
 
     while (!f.eof())
    {
        int ch = f.get();
        if (isalpha(ch)) //Только  буквы
            ++letters[ch];
    }
 
 
 
     int ch = 0;
    for (int i = 1; i < 256; ++i)
        if (letters[i] > letters[ch])
            ch = i;
    cout << "Буква: " << char(ch)  << "\nКоличество: " << letters[ch];
    cout << endl;
 
 
 
    system("pause");
    return 0;
}
0
51 / 32 / 19
Регистрация: 25.05.2019
Сообщений: 95
05.06.2019, 18:49
https://www.cyberforum.ru/post13591535.html
1
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
05.06.2019, 18:50
Цитата Сообщение от ngsernur Посмотреть сообщение
Вот ищет для 1 буквы, нужно для 10, не пойму как зациклить чтоб учитывались и предыдущие
Нужно отсортироватть массив letters и взять 10 последних элементов (или 10 первых, если сортировать по-убыванию)

Вернее, соврал, тогда в массиве надо хранить пару символ-количество
1
0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 80
05.06.2019, 20:50  [ТС]
Цитата Сообщение от ibsq Посмотреть сообщение
https://www.cyberforum.ru/post13591535.html
Мне попроще нужно
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
05.06.2019, 21:35
Цитата Сообщение от ngsernur Посмотреть сообщение
https://www.cyberforum.ru/post13591535.html
Мне попроще нужно
Сильно проще не получится
C++
1
2
3
4
5
6
7
8
9
10
#include <map>
.......
std::multimap<size_t, char, std::greater> items;
   for (int i = 1; i < 256; ++i)
        if (letters[i] != 0) 
              items.insert(letters[i], char(i));
 
size_t n = 10;
for (auto it = items.begin(), end = items.end(); n && it != end; ++it, --n)
   cout << "Буква: " << it->second  << "\nКоличество: " << it->first;
1
0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 80
05.06.2019, 23:03  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Сильно проще не получится
Компилятор ругается
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
05.06.2019, 23:21
Цитата Сообщение от ngsernur Посмотреть сообщение
Компилятор ругается
Ну, если бы только он. И что говорит?
Код тоже покажи.
0
0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 80
05.06.2019, 23:47  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Сильно проще не получится
Компилятор ругается
.............
1>d:\с++\5\5\55.cpp(22): error C3203: greater: неспециализированный класс шаблон нельзя использовать в качестве аргумента шаблон для параметра шаблон "_Pr", требуется действительный тип
1>d:\с++\5\5\55.cpp(22): error C2955: std::greater: для использования класса шаблон требуется список аргументов шаблон
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\xfunctional(110): см. объявление "std::greater"
1>d:\с++\5\5\55.cpp(25): error C2664: std::_Tree_iterator<_Mytree> std::multimap<_Kty,_Ty,_Pr>::insert<char >(std::_Tree_const_iterator<_Mytree>,_Va lty &&): невозможно преобразовать параметр 1 из "size_t" в "std::_Tree_const_iterator<_Mytree>"
1> with
1> [
1> _Mytree=std::_Tree_val<std::_Tmap_traits <size_t,char,int,std::allocator<std:ai r<const size_t,char>>,true>>,
1> _Kty=size_t,
1> _Ty=char,
1> _Pr=int,
1> _Valty=char
1> ]
1> and
1> [
1> _Mytree=std::_Tree_val<std::_Tmap_traits <size_t,char,int,std::allocator<std:ai r<const size_t,char>>,true>>
1> ]
1> Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
......................
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
#include <iostream>
#include <fstream>
#include <string>
#include <map>
using namespace std;
 
int main()
{    setlocale(LC_ALL, "Russian");
    size_t letters[256] = { 0 };
    ifstream f("f.txt");
 
     while (!f.eof())
    {
         int ch = f.get();
        if (isalpha(ch)) //Только  буквы
            ++letters[ch];
        cout<<" "<<char(ch);
    }
    int ch = 0;
 
 
   std::multimap<size_t, char, std::greater> items;
   for (int i = 1; i < 256; ++i)
        if (letters[i] != 0) 
              items.insert(letters[i], char(i));
 
size_t n = 10;
for (auto it = items.begin(), end = items.end(); n && it != end; ++it, --n)
   cout << "Буква: " << it->second  << "\nКоличество: " << it->first;
    cout << endl;
    
 
 
 
    system("pause");
    return 0;
}
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
05.06.2019, 23:57
Цитата Сообщение от ngsernur Посмотреть сообщение
1>d:\с++\5\5\55.cpp(22): error C2955: std::greater: для использования класса шаблон требуется список аргументов шаблон
Поставь там std::greater<size_t>

Добавлено через 1 минуту
Остальные ошибки, похоже, наведённые. Покажи, если не скомпилится

Добавлено через 2 минуты
Цитата Сообщение от ngsernur Посмотреть сообщение
std::multimap<size_t, char, std::greater> items;
* *for (int i = 1; i < 256; ++i)
* * * * if (letters[i] != 0)
* * * * * * * items.insert(letters[i], char(i));
Сделай items.insert(std::make_pair(letters[i], char(i)));

Добавлено через 37 секунд
Либо items.emplace(letters[i], char(i));
1
0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 80
06.06.2019, 00:13  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Сообщение от ngsernur
1>d:\с++\5\5\55.cpp(22): error C2955: std::greater: для использования класса шаблон требуется список аргументов шаблон
Поставь там std::greater<size_t>
Добавлено через 1 минуту
Остальные ошибки, похоже, наведённые. Покажи, если не скомпилится
Добавлено через 2 минуты
Сообщение от ngsernur
std::multimap<size_t, char, std::greater> items;
* *for (int i = 1; i < 256; ++i)
* * * * if (letters[i] != 0)
* * * * * * * items.insert(letters[i], char(i));
Сделай items.insert(std::make_pair(letters[i], char(i)));
Добавлено через 37 секунд
Либо items.emplace(letters[i], char(i));
стало еще хуже, пишет много ошибок. Вообщем хз что то)
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
06.06.2019, 09:13
Цитата Сообщение от ngsernur Посмотреть сообщение
стало еще хуже, пишет много ошибок. Вообщем хз что то)
Ну так покажи ошибки. И код.
1
0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 80
06.06.2019, 12:13  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Ну так покажи ошибки. И код.
........................................ ..................................... вывод
>d:\с++\5лаба\5.cpp(22): error C2976: std::multimap: слишком мало аргументов шаблон
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\map(278): см. объявление "std::multimap"
1>d:\с++\5лаба\5.cpp(22): error C2133: items: неизвестный размер
1>d:\с++\5лаба\5.cpp(22): error C2512: std::multimap: нет подходящего конструктора по умолчанию
1>d:\с++\5лаба\5.cpp(22): error C2371: items: переопределение; различные базовые типы
1> d:\с++\5лаба\5.cpp(22): см. объявление "items"
1>d:\с++\5лаба\5.cpp(25): error C2663: std::multimap<_Kty,_Ty,_Pr,_Alloc>::inse rt: для 3 перегрузок нет допустимого преобразования для указателя "this"
1>d:\с++\5лаба\5.cpp(28): error C2663: std::_Tree<_Traits>::begin: для 2 перегрузок нет допустимого преобразования для указателя "this"
1>d:\с++\5лаба\5.cpp(28): fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
........................................ ........................................ ...............................


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
#include <iostream>
#include <fstream>
#include <string>
#include <map>
using namespace std;
 
int main()
{    setlocale(LC_ALL, "Russian");
    size_t letters[256] = { 0 };
    ifstream f("f.txt");
 
     while (!f.eof())
    {
         int ch = f.get();
        if (isalpha(ch)) //Только  буквы
            ++letters[ch];
        cout<<" "<<char(ch);
    }
    int ch = 0;
 
 
   std::multimap<size_t> items; std::greater<size_t> items;
   for (int i = 1; i < 256; ++i)
        if (letters[i] != 0) 
         items.insert(std::make_pair(letters[i], char(i)));
 
size_t n = 10;
for (auto it = items.begin(), end = items.end(); n && it != end; ++it, --n)
   cout << "Буква: " << it->second  << "\nКоличество: " << it->first;
    cout << endl;
    
 
 
 
    system("pause");
    return 0;
}
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
06.06.2019, 12:38
Лучший ответ Сообщение было отмечено ngsernur как решение

Решение

Цитата Сообщение от ngsernur Посмотреть сообщение
std::multimap<size_t> items; std::greater<size_t> items;
std::multimap<size_t, char, std::greater<size_t>> items;
1
0 / 0 / 0
Регистрация: 31.10.2017
Сообщений: 80
06.06.2019, 14:21  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
std::multimap<size_t, char, std::greater<size_t>> items;
Ошибок больше нет, но ничего не выводит, просто пустое окно.

Добавлено через 7 минут
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
std::multimap<size_t, char, std::greater<size_t>> items;
Все заработал, спасибо, файл не хотел читаться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2019, 14:21
Помогаю со студенческими работами здесь

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

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

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

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

Дан файл, содержащий произвольный текст; определить, чего в нем больше: цифр или букв
дан файл содержащий производный текст .определить сколько в нем больше цифр или букв.напишите пожалуйста подробную программу , если можно...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru