Основы программирования на языке Turbo Pascal. Беляева И.В. - 259 стр.

UptoLike

Составители: 

259
Author: string[lenAuthor]; {Author – поле 'Автор'}
Publisher: string[lenPublisher]; {Publisher – поле 'Издательство'}
Number: integer; {Number – поле 'Кол-во томов'}
next: TPbook; {next – указатель на след. запись}
end;
var
First: TPbook; {First – первая запись списка}
{ Процедура insertBook
Вставляет запись b в базу данных, на которую указывает
глобальная переменная First
Запись b вставляется в базу данных таким образом, что записи в ней
оказываются упорядоченными по фамилии автора
}
procedure insertBook(b:Tbook);
var
P: TPbook; {P и Ppred – указатели используемые для}
Ppred: TPbook; {поиска места в списке для новой книги}
{P – проверяемай запись}
{Ppred – запись, предыдущая проверяемой}
newP: TPbook; {newP – в нее заносится новая книга}
begin
New(newP); {Выделяем в newP место под еще одну книгу}
newP^:=b; {и переписываем в newP информацию о вновь вставляемой книге}
P:=First; {Начинаем поиск в списке с первой записи}
Ppred:=nil; {Поскольку проверяем ПЕРВУЮ запись,}
{то предыдущей для нее не существует}
while P<>nil do {P=nil когда всю цепочку просмотрим}
{ либо когда найдем место для вновь вставляемой записи}
begin
if b.author<=P^.author then P:=nil {место нашли}
else