Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2010, 10:43   #1
denis_dneprovski
Пользователь
 
Регистрация: 08.10.2010
Сообщений: 11
По умолчанию Программа на Delphi, считающая сколько раз в тексте встречается каждый символ, биграмма, триграмма

Доброго времени суток. Нужна помощь в создании программы на Delphi, которая должна считать сколько раз в тексте встречается каждый символ, биграмма, триграмма. (текст на русском языке)
denis_dneprovski вне форума Ответить с цитированием
Старый 08.10.2010, 10:48   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Какая кодировка в тексте? Юникод, аски или др.?
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 08.10.2010, 10:50   #3
denis_dneprovski
Пользователь
 
Регистрация: 08.10.2010
Сообщений: 11
По умолчанию

таблица аски
denis_dneprovski вне форума Ответить с цитированием
Старый 08.10.2010, 10:55   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Тогда можно так... Создавай массив, размерностью 256 (тип данных выберешь сам, хоть longint), просматривая текст, увеличивай значение элемента массива по индексу ord(символ)... В результате просмотра текста значения элементов массива будут содержать количество этих символов в тексте...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 08.10.2010, 14:13   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Grag биграммы и триграммы так не посчитаешь..

я бы рекомендовал (раз уж программа на Delphi) использовать TStringList
в нём КРАЙНЕ полезными окажется следующий имеющийся функционал:
- поиск - было ли такое ранее:
TS.IndexOf('ТутБиграмма или Триграмма')
- возможность добавить объект (или значение) к элементу списка через
TS.AddObject(..)
т.е. работать так
Код:
  TS := TstringList.Create;
  в цикле, берём в sLetters очередную букву, (или  биграмму, или триграмму)

   k := TS.IndexOf(sLetters);
   if k<0 then  {впервые встретили такое сочетание}
   begin
      TS.AddObject(sLetters, Tobject(0));
   end
   else {уже было такое сочетание, увеличим счётчик на единичку}
      TS.Objects[k] := TObject( Integer(TS.Objects[k]) + 1 );
конец цикла

ВСЁ. Можно выводить результаты из TS!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.10.2010, 13:37   #6
denis_dneprovski
Пользователь
 
Регистрация: 08.10.2010
Сообщений: 11
По умолчанию

с одним символом понятно, но биграмм придется перебирать уже 58^2, а триграмм вообще 58^3. как можно автоматизировать этот процесс?
denis_dneprovski вне форума Ответить с цитированием
Старый 09.10.2010, 18:49   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я выше привёл рабочий вариант. Чем не устраивает? Тем, что результатов много получается?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.10.2010, 13:28   #8
denis_dneprovski
Пользователь
 
Регистрация: 08.10.2010
Сообщений: 11
По умолчанию

а можно архив с готовой программой?)))
denis_dneprovski вне форума Ответить с цитированием
Старый 10.10.2010, 14:19   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нельзя
Что у Вас не получается?!

p.s. Кстати, а Вы пробовали, для начала, просто ручками выделить эти самые биграммы/триграммы? Вот, например, перечислите, какие в ниже приведённом тексте биграммы и триграммы:
Там, в лесу раздавался стук, это кто-то что-то рубил.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.10.2010, 17:22   #10
denis_dneprovski
Пользователь
 
Регистрация: 08.10.2010
Сообщений: 11
По умолчанию

Биграммы: "Та" "м," " в" " л" "ес" "у " "ра" "зд" "ав" "ал" "ся" " с" "ту" "к," " э" "то" " к" "то" "-т" "о " "чт" "о-" "то" " р" "уб" "ил" ". "
триграммы: "Там" ", в" " ле" "су" " ра" "зда" "вал" "ся " "сту" "к, " "это" " кт" "о-т" "о ч" "то-" "то " "руб" "ил."
Пятерка?))

Последний раз редактировалось denis_dneprovski; 10.10.2010 в 17:25.
denis_dneprovski вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как подсчитать сколько раз встречается символ в строке? zver777 Общие вопросы Delphi 10 10.01.2010 00:57
Анализ текста программы на Delphi. Сколько раз встречается оператор. alex67 Помощь студентам 5 09.12.2009 16:24
Сколько раз в тексте встречается каждое слово. 08ekhiv1 Помощь студентам 2 11.03.2009 10:56
Определить сколько раз встречается в тексте самое короткое слово - Delphi 7 Леди Уинтер Помощь студентам 3 08.01.2008 17:56
Сколько раз встречается данное слово n1k1c4 Помощь студентам 4 13.12.2007 20:33