Скачиваний:
60
Добавлен:
02.05.2014
Размер:
152.06 Кб
Скачать

III. Информационная модель

Назначение

Имя

Тип

Указатель на очередной элемент

tek

tpel

Счетчик элементов

i

integer

Признак окончания цикла

fin

boolean

V. Программная модель

procedure printdek(head:tpel;mesto:boolean);

var tek:tpel;

i:integer;

fin:boolean;

begin

if head=nil then

begin

writeln('Дек пуст');

exit

end;

if mesto then tek:=head else tek:=head^.ppred;

i:=1;

repeat

writeln(i,' элемент=',tek^.inf);

i:=i+1;

if mesto then tek:=tek^.psled else tek:=tek^.ppred;

if mesto then fin:=tek=head else fin:=tek=head^.ppred

until fin;

end;

Программа, моделирующая работу с деком

Программа представляет собой обычную программу-меню, которая в соответствии с выбором пользователя вызывает одну из подпрограмм – включения нового элемента в дек, исключение элемента из дека, просмотр содержимого дека.

var head:tpel;{голова дека}

inf:tinf;{информация, расположенная во включаемом, либо исключаемом элементе}

menu:0..3;{выбранный пункт меню}

mesto:boolean;{доступ к деку: true – из головы; false – из хвоста}

napr:0..1;(выбранное направление доступа}

begin

head:=nil;{инициализация списка}

while true do

begin

writeln('Меню: 0 -выход;1-включение;2-исключение;3-вывод');

readln(menu);

case menu of

0: halt;{завершение программы}

1: begin

writeln('Куда включать? 0-в голову 1 – в хвост');

readln(napr);

if napr=0 then mesto:=true else mesto:=false;

writeln('Включаемая информация?');

readln(inf);

vkldek(head,inf,mesto)

end;

2: begin

writeln('Откуда исключать? 0-из головы 1 – из хвоста');

readln(napr);

if napr=0 then mesto:=true else mesto:=false;

if iskldek(head,inf,mesto) then

writeln('Исключаемая информация=',inf)

else writeln('Дек пуст')

end;

3: begin

writeln('Направление вывода? 0-от головы 1 – от хвоста');

readln(napr);

if napr=0 then mesto:=true else mesto:=false;

writeln('Содержимое дека:');

printdek(head,mesto)

end

end

end

end.

Соседние файлы в папке Лекции по Паскалю