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
|
|
Гость |
Winniepoohless,
вопрос на засыпку: слова 'Привет' и 'привет' считаются одинаковыми или разными? klem4, к тебе тоже есть вопрос - почему не так: procedure TInfoList.Print;? Зачем лишние движения с first-ом делать? Сообщение отредактировано: volvo - |
Winniepoohless Задача на частотный анализ текстового файла 31.01.2008 21:44
klem4 type
PTInfo = ^TInfo;
TInfo = Record
_wo… 31.01.2008 22:20
Winniepoohless Спасибо огромное! Буду разбираться :) 31.01.2008 22:46
Michael_Rybak
Мне это совсем непонятно. Ее нужно делать через … 31.01.2008 22:57
klem4 Да, кстати, двоичных деревьев в решении я не испол… 31.01.2008 23:02
Winniepoohless
Да, кстати, двоичных деревьев в решении я не испо… 1.02.2008 20:35
Winnipoohless Да, "Привет" и "привет" считаю… 1.02.2008 20:10
klem4 volvo, ага чо-то намудрил я мальца в этом месте .. 31.01.2008 23:09
volvo Естественно. Тогда придется хранить не сами слова,… 1.02.2008 20:16
Гость
Естественно. Тогда придется хранить не сами слова… 1.02.2008 20:37
Yevgeny
Посмотри вот в эти места в программе и разберись… 1.02.2008 20:45
Winniepoohless
Посмотри вот в эти места в программе и разберись.… 1.02.2008 21:01
volvo Это не классификация ошибки... Что именно не идет?… 1.02.2008 21:34
Winniepoohless
Это не классификация ошибки... Что именно не идет… 4.02.2008 18:13![]() ![]() |
|
Текстовая версия | 22.12.2025 6:28 |