Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська Політехніка»
Кафедра
Інформаційних
систем та мереж
Лабораторна робота №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.
Результати виконання програми:
Висновки:
При виконанні даної роботи я набув навичок моделювання зв'язаних динамічних структур даних та роботи з ними.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!