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

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

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

 
 Ответить  Открыть новую тему 
> Бинарные деревья, Компилятор находит ошибку, не знаю как её исправить
сообщение
Сообщение #1


Гость






Вот эта прога: (Показать/Скрыть)

ПОМОГИТЕ!!!!!!!!!!!! Я не знаю,как исправить мою ошибку... mega_chok.gif blink.gif wacko.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
Компилятор находит ошибку, не знаю как её исправить
Все правильно находит... Ты здесь:
 while Root<>Nil do
if Root^.data=Node then ...

пытаешься сравнивать переменные типа Rabotnik, а компилятор этого делать не умеет. Придется тебе писать свою функцию сравнения:
Function isEqual(first, second: Rabotnik): Boolean;
Begin
...
{
Здесь - сравнивай записи по какому-то нужному тебе критерию,

если запись first по этому критерию равна записи second,
то вернуть True, иначе False
}
End;

И вместо
If Root^.data = Node Then

делать
If isEqual(Root^.Data, Node) Then


Кстати, у тебя там ниже по тексту есть еще ошибки...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата(volvo @ 4.04.2006 17:33)
Кстати, у тебя там ниже по тексту есть еще ошибки...

Это где такие?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Скомпилируешь - увидишь... Вот тут, например:
{ ОСНОВНАЯ ПРОГРАММА }
...
key:=readKey; {Считывание кода нажатой клавиши}
...
А где этот самый Key определен?

Ну, и лишний апостроф в строке вывода на печать...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






А... у если такие, то это не проблема... Был у меня где-то этот key...
smile.gif Спасибо большое!!!!!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Я тут кой-чего наделала:
{========ФУНКЦИЯ ДЛЯ СРАВНЕНИЯ ЭЛЕМЕНТОВ ДЕРЕВА=================}
Function Sravn(first,second:rabotnik):Boolean;
Var j:Integer;
Begin
Reset(f);
while not eof(f) do
For i:=filesize(f)-1 downto 1 do
For j:=0 to i-1 do
Begin
Seek(f,j);
Read(f,first,second);
if first.number=second.number then
Sravn:=True
else Sravn:=False;
end;
End;
{====ПРОЦЕДУРА ОПРЕДЕЛЯЮЩАЯ ЧИСЛО ВХОЖДЕНИЙ ЭЛ-ТА В ДЕРЕВО======}
Procedure KolE(Root:TreePtr;n:Integer;Node:rabotnik);
Begin
Reset(f);
writeln('Введите элемент');
Read(f,r);
Node:=r;
n:=0;
while Root<>Nil do
if Sravn(Root^.data,Node) then
n:=n+1;
KolE(Root^.left,n,Node);
KolE(Root^.right,n,Node);
writeln('количество элементов равно',n);
Close(f);
End;

Хотелось бы верить, что правильно,но это не так... Программа стопорится! Что опять не так?
 К началу страницы 
+ Ответить 

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

 




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