Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська Політехніка»
Кафедра
Інформаційних
систем та мереж
Лабораторна робота №4
на тему
Стек і черга. Хеш таблиця.
Мета роботи: набуття навичок моделювання зв'язаних динамічних структур даних та роботи з ними.
Постановка завдання
Розробити підпрограми, які забезпечують запити на запис або читання даних з черги, стека або дека. Для організації вказаних структур використовувати масиви або списки. Перевірити працездатність розроблених підпрограм. Послідовність виконання операцій запису або читання вибираються випадково. Порівняти результати роботи, зробити висновки.
Індивідуальні завдання:
8
Розробити підпрограми роботи з деком. Дек організований на масиві з циклічним заповненням і із зрушенням. Операції виконуються з обох кінців дека.
Текст програми:
program L4;
uses Crt;
const max=10;
var a: array [1..10] of integer;
i: integer;
ch: char;
left: boolean;
procedure Add2R(n,v: integer);
Begin
For i:=max downto n do a[i]:=a[i-1];
a[n]:=v;
end;
procedure Add2L(n,v: integer);
Begin
For i:=1 to n do a[i]:=a[i+1];
a[n]:=v;
end;
procedure WriteArr;
Begin
WriteLn('');
If left then Write('->[') else Write(' [');
For i:=1 to max-1 do Write(a[i],',');
Write(a[max]);
If left then WriteLn('] ') else WriteLn(']<-');
WriteLn;
WriteLn(' [Left]\[Right] - change direction');
WriteLn(' [+] - add random element');
WriteLn(' [-] - delete element');
WriteLn(' [Esc] - exit');
end;
Begin
Randomize;
For i:=1 to max do a[i]:=0;
left:=true;
repeat
ClrScr;
WriteArr;
ch:=ReadKey;
case ch of
#75: left:=true;
#77: left:=false;
'+': If left then Add2R(1,random(100)) else Add2L(max,random(100));
'-': If left then Add2L(max,0) else Add2R(1,0);
end;
until ch=#27;
end.
Результати виконання програми:
Висновки:
При виконанні даної роботи я набув навичок моделювання зв'язаних динамічних структур даних та роботи з ними.