Вот эта прога: (Показать/Скрыть)
Program TreeProcess;
Uses Crt;
Type
rabotnik=record {Описание записи о сотруднике}
number:integer;
FIO:string[15];
godroj:integer;
pol:char;
cem:string[15];
koldet:integer;
oklad:integer;
end;
TreePtr=^Tree; {Описание узла дерева}
Tree=record
data:rabotnik;
left,right:TreePtr
end;
rab=file of rabotnik;
Var
Top:TreePtr;
r:rabotnik;
f:rab;
n,i:Integer;
{================ФУНКЦИЯ ДОБАВЛЯЮЩАЯ ЛИСТ К ДЕРЕВУ============}
Function AddTree(Top:TreePtr;Newnode:rabotnik):TreePtr;
Begin
If Top=Nil then
begin
New(Top);
Top^.data:=Newnode;
Top^.left:=nil;
Top^.right:=nil;
end
else
If Top^.data.FIO>Newnode.FIO then
Top^.left:=AddTree(Top^.left,Newnode)
else
Top^.right:=AddTree(Top^.right,Newnode);
AddTree:=Top
End;
{=============ПРОЦЕДУРА ОРГАНИЗАЦИИ ДЕРЕВА====================}
Procedure OrgTree;
Begin
writeln('Выполняется процедура организации дерева');
Readln;
Reset(f);
Top:=Nil;
while not eof(f) do
begin
read(f,r);
Top:=AddTree(Top,r);
end;
End;
{=============ПРОЦЕДУРА ОТОБРАЖЕНИЯ СТРУКТУРЫ ДЕРЕВА==========}
Procedure Prosmotr(Top:TreePtr); {значения узлов дерева просматриваются}
{слева направо}
Begin
if Top<>Nil then
begin
Prosmotr(Top^.left);
with Top^.data do
writeln(number:4,' ',FIO:15,' ',godroj:6,' ',pol:3,' ',cem:15,' ',
koldet:7,' ',oklad:5);
i:=i+1;
Prosmotr(Top^.right);
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 Root^.data=Node then {Здесь выдаёт ошибку про несовпадение типов для данного оператора}
n:=n+1;
KolE(Root^.left,n,Node);
KolE(Root^.right,n,Node);
writeln('количество элементов равно',n);
Close(f);
End;
{====================ОСНОВНАЯ ПРОГРАММА========================}
Begin
Assign(f,'C:\derevo.dat');
repeat
ClrScr; {Очистка экрана}
writeln('1-Организация двоичного дерева');
writeln('2-Просмотр дерева');
writeln('3-Количество вхождений эл-та в двоичное дерево');
writeln('4-Выход');
writeln('------------------------------');
writeln('Нажмите клавишу от 1 до 4');
key:=readKey; {Считывание кода нажатой клавиши}
case key of {Вызов необходимой процедуры по номеру}
'1':OrgTree;
'2':Begin
writeln('Выполняется процедура просмотра дерева');
writeln;
i:=0;
writeln('N':4,' ','FIO':15,' ','godroj':6,' ','pol':3,' ','cemeunoe_poloj':15,' ',
'kol_det:7,' ','oklad':5);
Prosmotr(Top);
readln;
end;
'3':
end;
until key='4'; {Выход из программы}
End.
ПОМОГИТЕ!!!!!!!!!!!! Я не знаю,как исправить мою ошибку...