Задача на частотный анализ текстового файла |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача на частотный анализ текстового файла |
Winniepoohless |
Сообщение
#1
|
Гость |
Собственно, условие подобной задачи (олимпиадской) на форуме приводилось (решение - нет):
Привожу еще раз условие: Дан текст, в котором встречаются слова, состоящие из букв русского и латинского алфавитов и цифр, знаки препинания, пробелы и переводы строк. Требуется найти количество вхождений каждого слова в этот текст Для каждого слова при выводе в скобках указать количество его вхождений в текст. ************************************************************************* Понятно, что решение надо делать через двоичное дерево. Часть программы есть, но не допру, как дальше: uses crt; type {ссылка на узел дерева} TFindTreePtr = ^TFindTreeNode; TFindtreeNode = record info: word; count: integer; left, right: TFindTreePtr; end; var InFile: Text; {исходный файл} FileName: string; {имя файла данных} root: TFindTreePtr; str: word; {текущий обрабатываемое слово} ErrCode: integer; {код ошибки при открытии файла} ask: char; {символ-отклик при выборе режима вывода} procedure Search (c: string; var node: TFindTreePtr); begin if node=nil then begin node:=New(TFindTreePtr); node^.info:=c; node^.count:=1; node^.left:=nil; {новый лист} node^.right:=nil; end else if c< node^.info then Search (c,node^.left) else if c>node^.info then Search (c,node^.right) else node^.count := node^.count+1; end; |
volvo |
Сообщение
#2
|
Гость |
Цитата Но чего-то не идет... Это не классификация ошибки... Что именно не идет? Что происходит? Что выводит программа? Файл существует? Он не заблокирован другим приложением? Вот я попробовал - все нормально открылось и отработало... Что я делаю не так?Цитата а через апкейс нельзя? Нельзя. Он работает только с латинскими символами, с русскими получишь проблему...Добавлено через 1 мин. Цитата Название своего файла (для анализа) я вставляю после assign Название своего файла надо передавать в Create (как это и сделано во втором посте), а не перековыривать всю программу, а потом говорить, "что-то не работает"... |
Текстовая версия | 4.05.2024 8:05 |