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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
ika11ika
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 12
#1

Подсчет частоты алфавита - C++

14.12.2013, 16:29. Просмотров 1205. Ответов 23
Метки нет (Все метки)

Доброго времени суток. Как посчитать в тексте из файла частоту алфавита(сколько раз каждый символ встречается в приведенном тексте)? Я понимаю, что мы открываем 2 файла: в 1 изначальный текст, в другой записывается частота алфавита. Вот только не посимвольно же этот текст читать и суммировать. А как сделать это на массивах представляю очень образно и на практике не выходит. Помогите хотя бы с теоретической части, а практической может сама дойду. Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2013, 16:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подсчет частоты алфавита (C++):

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

Сделать подсчет частоты встречаемости последовательности символов АБВ в текстовом файле - C++
Народ помогите пожалуйста решить задачу: подсчет частоты встречаемости последовательности символов АБВ в текстовом файле?

Подсчет количества символов русского алфавита в текстовом файле - C++
Здравствуйте, нужна ваша помощь) Допустим у нас имеется текстовой файл Test.txt( в нем находятся русские буквы и другие... символы и...

Работа со звуком (частоты) - C++
Привет. Меня интересует как работать со звуком на С-подобных языках. Какие существуют для этого библиотеки и подходы. Очень хочется...

Определение частоты звука микрофона - C++
Всем привет. Помнится встречал темы на форуме, сейчас чего то не могу найти. Появилась идея сделать программу для распознавания азбуки...

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

23
ika11ika
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 12
14.12.2013, 20:29  [ТС] #16
А есть какой-нибудь вариант записать это попроще, пусть это будет немного неразумно, с учетом, что есть более "продвинутые" и результативные способы, но попроще.
0
ya_noob
_
201 / 145 / 9
Регистрация: 08.10.2011
Сообщений: 432
14.12.2013, 20:42 #17
Цитата Сообщение от ika11ika Посмотреть сообщение
А есть какой-нибудь вариант записать это попроще
куда уж проще, 4 строчки кода всего: объявляем массив и двумя циклами читаем и обрабатываем входные данные
0
ValeryS
Модератор
6679 / 5088 / 475
Регистрация: 14.02.2011
Сообщений: 17,081
14.12.2013, 20:49 #18
Цитата Сообщение от ya_noob Посмотреть сообщение
набрал строчку, нажал ctrl+C, зажал ctrl+V на несколько секунд и вуаля. Что вы до мелочей докапываетесь то?
мы о реальной задаче или о "сферических конях"?
можно и пару сотен гигабайт сгенерить, а потом спрашивать как мне быстрей его прочитать
Цитата Сообщение от ika11ika Посмотреть сообщение
А есть какой-нибудь вариант записать это попроще, пусть это будет немного неразумно, с учетом, что есть более "продвинутые" и результативные способы, но попроще.
чем тебе вариант Кузи Домовенка, не устраивает?
0
ika11ika
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 12
14.12.2013, 20:56  [ТС] #19
Цитата Сообщение от ya_noob Посмотреть сообщение
куда уж проще, 4 строчки кода всего: объявляем массив и двумя циклами читаем и обрабатываем входные данные
Не могли бы вы мне построчный комментарий написать, чтобы я разобралась, если не сложно?)

Добавлено через 5 минут
Цитата Сообщение от ValeryS Посмотреть сообщение
чем тебе вариант Кузи Домовенка, не устраивает?
я не оспариваю варианты, я просто не могу в них разобраться, вот в чем проблема
0
ValeryS
Модератор
6679 / 5088 / 475
Регистрация: 14.02.2011
Сообщений: 17,081
14.12.2013, 21:08 #20
Цитата Сообщение от ika11ika Посмотреть сообщение
я не оспариваю варианты, я просто не могу в них разобраться, вот в чем проблема
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
int symbols[256]={0};
char c;
while(!f.eof()){
* f>>c;
* symbols[c]++;//тут ещё нужно, наверн. подумать, что делать со знаковыми char
}
поехали по шагам

C++
1
int symbols[256]={0};
выделяем массив на 256 элементов и обнуляем его, в нем будет лежать количество букв в тексте например в 65 ячейке будет лежать количество букв 'A'
C++
1
char c;
здесь ошибка нужно объявить беззнаковую чтобы считать русские буквы
C++
1
unsigned char c;
создадим переменную куда будем считывать буквы
C++
1
while(!f.eof()){
крутим цикл пока не кончится файл
C++
1
 f>>c;
считываем символ из файла
C++
1
symbols[c]++;
увеличиваем значение ячейки на 1
например считали символ 'A' его номер 65
значит увеличиваем 65 ячейку на 1

после цикла в массиве и будет лежать частота букв
например чтобы узнать сколько раз встретилась буква 'B'
достаточно написать
C++
1
cout<<symbols['B'];
1
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
14.12.2013, 21:08 #21
Цитата Сообщение от ya_noob Посмотреть сообщение
но нет желания в этом подробно разбираться
IMHO, в таком случае, лучше не морочить другим голову.
0
ika11ika
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 12
14.12.2013, 21:14  [ТС] #22
Цитата Сообщение от ValeryS Посмотреть сообщение
C++
1
cout<<symbols['B'];
Это вроде я поняла, спасибо огромное, а как можно выписать все буквы, используемые в тексте вместе со значениями об их количестве из массива в другой файл?
0
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
14.12.2013, 21:16 #23
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
   DWORD    pFrq[256];  // Массив счетчиков
 
   memset(pFrq,0,sizeof(DWORD) * 256); // Обнуляем все счетчики
 
   for (int ii = 0; ii < (int)dwSize; ++ii) // Посимвольный просмотр буфера
   {
      ++pFrq[pBuf[ii]]; // Инкрементируем счетчик, соответствующий символу
   }
   
   for (ii = 0; ii < 256; ++ii) // Вывод на печать всех счетчиков
   {
      printf("%c  %02X:  %d\n",IsPrintable((BYTE)ii)  ?  ii  :  0x20,ii,pFrq[ii]);
   }
0
ya_noob
14.12.2013, 21:17     Подсчет частоты алфавита
  #24

Не по теме:

Цитата Сообщение от gazlan Посмотреть сообщение
IMHO, в таком случае, лучше не морочить другим голову.
IMHO, если ничем помочь ТСу не можете, то лучше не захламлять тему, что-то я у вас не одного полезного сообщения в этой теме не увидел, делаете одни скрытые упреки да выдергиваете фразы из контекста и изворачиваете их

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2013, 21:17
Привет! Вот еще темы с ответами:

Необходима реализация изменения частоты дискретизации на С++ - C++
Мне очень нужна помощь в области изменения частоты дискретизации с помощью различных способов аппроксимации. Необходимо реализовать на С++...

Программа для подсчета частоты вхождения слов - C++
Доброго времени суток. Недавно помогли &quot;сворганить&quot; програмку для подсчета частоты вхождения слов из текстового файла: #include...

Программа для подсчета частоты вхождения слов - C++
Программа считает частоту вхождений слов, но есть небольшой нюанс. Слова типа (&quot;как-то&quot;) выводит как два отдельных слова, как и то, Тире не...

цикл алфавита - C++
1. Вывести в одну строчку zyyxxx и тогдалее до 26 штук а 2. Создайте программу, которая вводит с клавиатуры текст. Слова могут...


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

Или воспользуйтесь поиском по форуму:
24
14.12.2013, 21:17
Ответ Создать тему
Опции темы

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