Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_МЕТ№2.DOC
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
247.81 Кб
Скачать

2.1. Очередь типа Lifo

Для очереди типа LIFO достаточно задать адрес начала списка и текущее значение указателя в списке, которое будет перемещаться вниз. Элемент добавляется и убирается только в начало очереди. Это – наиболее простая очередь. Пусть элементы списка вводятся с клавиатуры. Признак окончания – символ `*`. Программа будет иметь вид:

Program Lifo;

Type

Ptr = ^Sp;

Sp = Record

Buk:Char;

Sl:Ptr;

End;

Var

Pp,Np,Tp:Ptr; {Последующий, начальный и текущий указатели}

C:Char;

Begin

{Начало очереди}

Pp:=Nil; { очередь пустая}

Writeln (` Введите элемент очереди`);

Readln(C);

While C<>`*`do

Begin

{Выделение памяти для текущего адреса}

New (Tp);

Tp^.Buk:=C;

{Сдвигаем указатель}

Tp^.Sl:=Pp; { Ссылки из последнего элемента и}

Pp:=Tp; { на последний очереди}

Writeln (` Введите элемент очереди`);

Readln(C);

End;

{Теперь Pp и Tp- cсылка на последний, (верхний), элемент,}

{ Выборка с конца очереди}

Tp:=Pp; { Tекущий указатель = ссылке на первый элемент }

While Tp <> Nil do

Begin

Write (Tp^.Buk); { вывод информационного Элемента }

Tp:=Tp^.Sl; { переход к следующему элементу }

End;

Writeln(`Конец`);

End.

2.2. Очередь Fifo

Для очередей типа Fifo есть правый и левый элемент. Добавление элементов в очередь выполняется слева, а выборка – справа. (Добавление – в "хвост", а выборка – с начала ). Обозначим Fp – первый, Lp – последний, Tp – текущий элемент. Программа будет иметь вид:

Program Fifo;

Type

Ptr = ^Sp;

Sp = Record

Buk:Char;

Sl:Ptr;

End;

Var

Fp,Lp,Tp:Ptr; { Первый, последний и текущий указатели }

C:Char;

Begin

{Начало очереди}

Fp: =Nil; { очередь пустая}

Writeln (` Введите элемент очереди`);

Readln (C);

While C < > `*` do

Begin

{Выделение памяти для текущего адреса}

New (Tp);

Tp^.Buk:=C;

Tp^.Sl:=Nil;

If Fp = Nil then {1-й элемент}

Fp:=Tp { указатель "головы" очереди }

Else

Lp^.Sl:=Tp; { включаем Tp в состав списка }

Lp:=Tp; { указатель "хвоста" очереди }

Writeln (` Введите элемент очереди`);

Readln(C);

End;

{ Выборка с "головы" очереди}

Tp:=Fp; { Tекущий указатель = ссылке на первый элемент }

While Tp < > Nil do

Begin

Write (Tp^.Buk);

Tp: = (Tp^.Buk);

Tp:=Tp^.Sl;

End;

End.

Стандартные модули Турбо Паскаля

Библиотека Турбо Паскаля содержит большое количество стандартных процедур, функций, констант, типов и переменных, которые разделены на связанные группы, называемые стандартными модулями. Они хранятся в файле turbo.tpl. Таких модулей 7. Каждый модуль содержит все описания, процедуры и функции, необходимые для выполнения определенных операций. Наиболее распространенные модули:

1. System – содержит все стандартные функции и процедуры Турбо Паскаля (математические, тригонометрические, обработки строк, Read и Write и т.д.). Присоединяется ко всем программам автоматически при их загрузке и выполнении.

2. Printer – связывает программу с устройством печати, используется совместно с модулем Crt.

3. Crt – позволяет использовать возможности клавиатуры, экрана и звукового генератора.

4. Dos – обеспечивает связь программы с MS Dos.

5. Graph – позволяет использовать графические возможности компьютора.

Для использования любого модуля в программе необходимо после заголовка указать его имя в предложении Uses. В общем виде это предложение записывается так:

Uses

список имен;

Пример.

Uses

crt,dos;

или

Uses

Crt,Graph,Dos;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]