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

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

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

> Выписать слова в алфавитном порядке
Даша
сообщение 10.12.2010 18:56
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Женский

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


Добрый день! Помогите пожалуйста со следующей задачей:
Дан текстовый файл, состоящий из слов, разделенных пробелами и запятыми. Слова по строкам не переносятся.
Необходимо упорядочить слова в алфавитном порядке с указанием строк, в которых они встречаются. Реализовать
всё надо с помощью деревьев.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Даша
сообщение 13.12.2010 21:12
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Женский

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


Вот то что получилось написать....
Implementation
Procedure IntInsert(var RootInt:TIntTree; x:TElem);
//Создание дерева целых чисел
Procedure CreateNode(var p:TIntTree; n:TElem);
//Дополнительная процедура, создающая и инициализирующая новый узел
begin
New(p);
p^.Info:=n;
p^.Left:=nil;
p^.Right:=nil
End;
Begin
if RootInt=nil Then CreateNode(RootInt,X) { создаем новый узел дерева }
else
with RootInt^ do
begin
if info<X then IntInsert(Right,X)
else
if info>X Then IntInsert(Left,X)
end;
End;


Procedure Insert(var root:TTree; X:T);
//Создание дерева
Procedure CreateNode(var p:TTree; n:T);
begin
New(p);
p^.Info:=n;
p^.Left:=nil;
p^.Right:=nil
End;
begin
if Root=nil Then CreateNode(Root, X)
else
with Root^ do
begin
if info.s<X.s then Insert(Right,X)
else
if info.s>X.s Then Insert(Left,X)
else
IntInsert(info.tree, n)
end;
end;

Procedure WordsInTree(var f:text);
var i,back:integer; a:string;
Begin
n:=0;
while not eof(f) do
begin
Inc(n);
ReadLn(f,s);
i:=1;
while(i<=length(s)) do
begin
while(i<=length(s)) and (s[i] in [',',' ']) do
inc(i);
if i<=length(s) then
begin
back:=i;
while(i<=length(s)) and not(s[i] in [',',' ']) do
inc(i);
a:=copy(s,back,i-back);
IntInsert(IntRoot,n);
X.s:=a;
Insert(Root,X);
end;
end;
end;
End;

Procedure Print(var Root:TTree);
var
i:integer;
Begin
if Root<>nil then
begin
print(Root^.Left);
writeln(Root^.Info.s);
print(Root^.Right)
end
End;




Но не работает.. При вызове процедур WordInTree и Print ничего печатается.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Даша   Выписать слова в алфавитном порядке   10.12.2010 18:56
volvo   И Вам день добрый. Обязательно поможем, как только...   10.12.2010 19:26
Даша   Затруднение как раз с деревьями. Как в данной зада...   10.12.2010 20:06
TarasBer   Ну в данном случае может помочь дерево, у которого...   10.12.2010 20:39
volvo   Не нужно здесь префиксное дерево, не надо забивать...   10.12.2010 21:03
TarasBer   > Не нужно здесь префиксное дерево, не надо заб...   10.12.2010 21:36
volvo   Даша, в качестве иллюстрации работоспособности: Ru...   11.12.2010 11:41
TarasBer   Префиксное дерево строк + данные о номере строки в...   11.12.2010 14:20
Даша   Ого.. Не думала что эта задача вызовет жаркий спор...   12.12.2010 0:05
volvo   По ссылке, которую я привел, ходила? Там приведено...   12.12.2010 1:12
TarasBer   > T = record s: string[StrLen]; tree: T...   12.12.2010 1:30
volvo   Потому что слово может встречаться не в одной стро...   12.12.2010 2:26
Даша   Пока что написала только это: interface const St...   12.12.2010 14:33
volvo   Да, именно так. А что, это как-то противоречит зад...   12.12.2010 15:40
Даша   Нет нет. Я просто спросила чтобы убедиться правил...   12.12.2010 15:57
volvo   Даша, смотри... Я могу, конечно отвечать на твои в...   13.12.2010 13:02
Даша   Согласна :) . Невнимательность подвела, совершенн...   13.12.2010 17:22
Даша   Непонятна функция GetWords.. Ведь она же принимает...   13.12.2010 17:43
volvo   Я не использовал саму функцию. Я использовал тольк...   13.12.2010 18:01
Даша   Совсем не получается это реализовать.. Непонятно,...   13.12.2010 19:57
volvo   Хм... Вот так, наверное: var s: string; // ... C...   13.12.2010 20:04
Даша   Да! Спасибо!   13.12.2010 20:10
Даша   Вот то что получилось написать.... Implementation ...   13.12.2010 21:12
volvo   Неправда. Печатается. Не всё, но слова, выдранные ...   13.12.2010 21:32
Даша   При запуске программы появляется пустая консоль и...   13.12.2010 21:36
volvo   Да? Ну, смотри, что у меня появляется:   13.12.2010 21:40
Даша   Ну а у меня чистое окно! Использую Borland Del...   13.12.2010 21:44
volvo   Значит, неправильно что-то описываешь. Поэтому все...   13.12.2010 21:52
Даша   Выкладываю: ОСНОВНОЙ ПРОЕКТ: program Project2; ...   13.12.2010 21:55
volvo   Ай-яй-яй :) Но если дублирование переменной X - ...   13.12.2010 22:11
Даша   Да, понимаю. Каждый раз просто печатаю "ничег...   13.12.2010 22:12
volvo   А зачем? :) Смотри: ты нашла очередное слово (s)....   13.12.2010 23:09
Даша   Ну думаю с этим я смогу справиться :) Огромное вам...   13.12.2010 23:14
Гость   Помогите плиз с решение: В данной строке найти сам...   23.01.2012 13:35


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

 



- Текстовая версия 20.07.2025 3:13
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"