IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на частотный анализ текстового файла
сообщение
Сообщение #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;

 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


The matrix has me!!!
**

Группа: Пользователи
Сообщений: 74
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Цитата
Но никак не пойму, почему у меня ошибка вылазит при запуске программы - can't open file c:\test.txt


Посмотри вот в эти места в программе и разберись...
begin
New(info_list, Create('C:\test.txt')); <<===

info_list^.Run;

Dispose(info_list, Free);
end.


assign(f, file_name);

{$I-}
reset(f);
{$I+}

if IOResult <> 0 then begin
writeln('can''t open file "' + file_name, '"'); <<===
readln;
halt(1);
end;


Может быть у тебя просто нет такого файла??? smile.gif


--------------------
"Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата(Yevgeny @ 1.02.2008 16:45) *

Посмотри вот в эти места в программе и разберись...
begin
New(info_list, Create('C:\test.txt')); <<===

info_list^.Run;

Dispose(info_list, Free);
end.


assign(f, file_name);

{$I-}
reset(f);
{$I+}

if IOResult <> 0 then begin
writeln('can''t open file "' + file_name, '"'); <<===
readln;
halt(1);
end;


Может быть у тебя просто нет такого файла??? smile.gif

Название своего файла (для анализа) я вставляю после assign
А функция IOResult, вроде, просто проверяет правильность выполнения операции (если 0, то ок).
Но чего-то не идет...Можешь у себя попробовать,если вдруг захочется

 К началу страницы 
+ Ответить 

Сообщений в этой теме
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
volvo   Winniepoohless, вопрос на засыпку: слова 'При…   31.01.2008 23:06
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


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 3.05.2024 22:07
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name