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

 
 Ответить  Открыть новую тему 
> бинарное дерево, помогите с ошибкой
сообщение
Сообщение #1





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

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


товарищи, помогите найти ошибку в программе --выдает в последней строчке ---derevo).pas(105) : Встречено '.', а ожидалось ';' сама прога:
Program derevo;
Type ptr=^ node;{тип покажчика на вузол дерева}
Function Tree(AmountNode:integer):ptr;{кількість вузлів дерева}
Function location(key:string; RootTree:ptr):ptr;{key ключове значення}
Begin
data:string;
left:ptr;{покажчик на ліве під дерево}
right:ptr;{покажчик на праве під дерево}
begin
Var n:integer;
root:=ptr;{покажчик на корінь дерева}
LeftNodes:ptr;{кількість вузлів у лівому піддереві}
RightNodes:prt;{кількість вузлів у правому піддереві}
begin
if AmoutNode = 0 then
else tree:=nil;
begin
LeftNodes:=AmoundNode div 2; {кількість взлів у піддеревах}
RightNodes:=AmoundNode div 2;
Writeln('введіть дані вузла');
Readln (str);
new(newnode); {виділити пам’ять для нового вузла }
with newnode^ do
begin
data:str; {інформаційне поле вузла}
left:=Tree(LeftNodes);{створення лівого піддерева}
rigt:= Tree(RightNodes);{створення правого піддерева}
end;
end;
var i: integer;
PrintTree(RootTree:ptr,L:integer);
begin
if RootTree <> nil then
with RootTree^do
PrintTree (left,L+1);
for i:=1 to L do write (' ');
Writeln (data); {вивести дані вузла}
PrintTree (right,L+1);
end;
begin
Writeln ('створення та відображення дерева');
Writeln ('введіть число дерева:');
Readln (n);
root:= Tree(n); {створення дерева}
Writeln ('створено дерево');
PrintTree (root,0);{відображення дерева}
Readln;
end;
Postfixorder(RootTree:ptr);{обхід дерева знизу уверх}
begin
if RootTree <> nil then
Postfixorder(RootTree^.left);
Postfixorder (RootTree^.right);
end;
end;
begin
Writeln('створення та відображення дерева');
Writeln('введіть число вузлів у дереві');
Readln(n);
Root:=Tree(n);
Writeln('створено дерево');
PrintTree(root,0);
Writeln ('обхід дерева знизу уверх');
Postfixorder(root);
Readln;
end;
var found:boolean;
begin
found:=false;
while (RootTree <> nil)and (not found) do
begin
if RootTree^.data=key {перевірка значення вузла}
then found:=true{значення знайдено}
else if RootTree^.data>key{значення не знайдено}
then RootTree:=RootTree^.left
else RootTree:=RootTree^.right;
end;
location:=RootTree;
end;
var n:integer;
begin
root:=ptr;
keyfound:string;{укане значення вузла}
rootfound:=ptr; {покажчик на шуканий вузол дерева}
сh:char; {код натиснутої клавіші}
begin
Writeln('створення та відображення дерева');
Writeln('введіть кількість вузлів у дереві');
Readln(n);
root:=tree(n);{створення бінарного дерева}
Repeat
Writeln('введіть ключ до пошуку');
Readln(keyfound);
rootfound:=location(keyfound,root);{виконання пошуку}
if rootfound <> nil then begin{якщо вузол знайдено}
Writeln('знайдено потрібний вузол');
end
else writeln('вузол не знайдено');
Writeln('продовження пошуку');
ch:=readkey; {продовження пошуку}
until ch='h';
end;
end;
end;
End.
помогите плиз!!! сижу 5-й день , не могу найти ошибку буду очень признателен!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

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

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


Это не программа, а набор символов, мимикрирующих под Pascal.
Начиная с самых первых строк:
Function Tree(AmountNode:integer):ptr;{кількість вузлів дерева}
Function location(key:string; RootTree:ptr):ptr;{key ключове значення}
Begin
data:string;
left:ptr;{покажчик на ліве під дерево}
right:ptr;{покажчик на праве під дерево}
begin
Var n:integer;
Дан заголовок функции Tree, но нет самой функции. Далее, начинается функция location, после begin начинается описание переменных. Т.е. тут всё нужно выбрасывать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Цитата(Федосеев Павел @ 13.04.2017 0:29) *

Это не программа, а набор символов, мимикрирующих под Pascal.
Начиная с самых первых строк:
Function Tree(AmountNode:integer):ptr;{кількість вузлів дерева}
Function location(key:string; RootTree:ptr):ptr;{key ключове значення}
Begin
data:string;
left:ptr;{покажчик на ліве під дерево}
right:ptr;{покажчик на праве під дерево}
begin
Var n:integer;
Дан заголовок функции Tree, но нет самой функции. Далее, начинается функция location, после begin начинается описание переменных. Т.е. тут всё нужно выбрасывать.



большое спасибо буду работать , ведь я просто учусь пока еще, и это мои первые шаги. Еще раз спасибо!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Знаток
****

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

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


Тогда, посмотрите тему Все о динамических структурах данных., да и вообще подраздел FAQ, из которого эта статья взята.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 




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