ing [10];// номер групи
end;
T=Integer; {Це буде номером заліковки}
TTree=^ TNode;// покажчик на запис=record//сама запис: T;// значення запису, Right: TTree;// ліві і праві гілки (для дерева)
end;
input: text;// вхідний файл
base: array [1..100] of SimplyRecord; {Масив з 100 записів}
r, i, NumberOfRecords, numberBook: integer;
MyTree: TTree;// безпосередньо деревоInsert (var Root: TTree; X: T);
{Додаткова процедура, що створює і инициализирующая новий вузол}
procedure CreateNode (var p: TTree; n: T);
begin
New (p);// виділяємо пам'ять для кореня дерева
p ^ .value:=n;// присвоюють ваем значення в корінь
p ^ .Left:=nil;// інніціалізація лівої і правої гілки
p ^ .Right:=nil
end;
begin
if Root=nil Then
CreateNode (Root, X)//якщо дерево ще не створено, то створюємо його
else
with Root ^ do begin//проходимо по всій записи
if value lt; X then
Insert (Right, X)//якщо значення менше, то вставляємо гілку зліва
else if value gt; X Then
Insert (Left, X);// якщо більше, то справа
end;
end; FindInTree (root: ttree; key: integer): Boolean;// пошук в дереві
var p ,: TTree;
begin
p:=root;
while p lt; gt; nil do begin//якщо гілка не порожня
if key=p ^ .value then begin//якщо вузол з таким ключем є
FindInTree:=true;// то присвоюємо правда
exit;// виходимо
end;
if key lt; p ^ .value then//якщо менше то
p:=p ^. left {спуститися вліво}
else
p:=p ^. right; {інакше спуститися вправо}
end;
FindInTree:=false;// інакше брехня; initializate: integer;// інніціалізація
s: string;// прочитується рядок
i, x, bufer1: integer;
assign (input, base.txt );// база даних номер прізвище група
reset (input);// відкриваємо для читання
i:=0;
while not EOF (input) do//поки не кінець файлу робимо
begin
i:=i + 1;// лічильник записів +1
readln (input, s);// читаємо рядок
x:=pos ( , s);// пошук пробілу
val (copy (s, 1, x - 1), base [i] .number, bufer1);// забиваємо в iй елемент бази номер заліковки
delete (s, 1, x);// удялять в рядку все до пробілу
x:=pos ( , s);// пошук пробілу
base [i] .Surename:=copy (s, 1, x - 1);// забиваємо iю прізвище
delete (s, 1, x);
x:=pos ( , s);
base [i] .NameGroup:=s;// номер групи
end;
close (input);// закриваємо вхідний файл
initializate:=i;// записуємо у функцію кількість елементів у вхідному файлі
end; FindInBase;// функція знайти в базі
Counter, operation, number: integer;
s: string;
i: integer;
Writeln ( Введіть дані для пошуку );// меню
Writeln ( 1 - номер заліковки );
Writeln ( 2 - прізвище студента );
readln (operation);// читаємо опреацию
if (operation=1) then//якщо опреацию 1
begin
Writeln ( Введіть номер заліковки );// номер заліковки
readln (number);// читаємо цей номер
for i:=1 to NumberOfRecords do if Base [i] .Number=number then//від 1 до кількості елементів, якщо
//шуканий збігається зі знайденим
begin
Writeln (Base [i] .number, , base [i] .Surename + + base [i] .NameGroup);
//виводимо на екран елемент повністю
counter:=counter + 1;// лічильник +1
end; ...