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

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

04.06.2019, 15:52. Показов 2312. Ответов 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 / 7071 / 265
Регистрация: 11.08.2016
Сообщений: 3,967
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
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru