МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар.

Приклади основних операцій зі стеком





Методичні рекомендації

До виконання лабораторної роботи № 7

Тема: Реалізація та відлагодження програм обробки черги та стеку.

Мета: Отримання навиків в організації динамічних структур даних – черги та стеку.

Теоретичні відомості

Динамічна структура даних черга створюється на основі однонаправленого списку, в якому доступними до обробки є:

1. перший елемент – тільки для видалення,

2. останній елемент – тільки для додавання (введення).

Отже з чергою виконується робота по принципу: «перший зайшов – перший вийшов». Для роботи з чергою завжди необхідно мати дві змінні-посилання: first – для збереження адреси першого елементу черги (голова черги) та last – для збереження адреси останнього елементу черги (хвіст черги).

 
 


last

 

first

 

 

nil

 

Приклади основних операцій з чергою

1. Створення черги:

. . .{Опис вузла черги дійсних чисел}

type

n=^uzel;

uzel=record

inf: real;

next: n;

end;

var

first: n; {Посилання на перший елемент черги}

last: n; {Посилання на останній елемент черги}

u: n: {Посилання на довільний вузол черги}

c: char;

 

 

{Введення першого елементу в чергу}

new(u); first:=u;

writeln(‘Введите первый елемент’); readln(u^.info)

u^.next:=nil; last:=first;

c:=’y’;

 

{Формування черги в циклі дозаписом елемента в «хвіст» черги}

while c=’y’ do

begin

new(u); u^.next:=last;

writeln(‘Введите очередной елемент’); readln(u^.info);

last:=u;

writeln(‘Хотите продолжать?’); readln(c);

end;

 

2. Видалення першого елементу з черги

u:=last;

{Переміщення по черзі до другого елементу – того, що посилається на перший}

while (u^.next<>first) do u:=u^,next;

 

{Видалення першого елементу}

first:=u; Dispose(u^.next); first^.next:=nil;

 

Динамічна структура даних стек створюється на основі однонаправленого списку, в якому доступними до обробки є тільки перший елемент – для додавання (введення) або для видалення.

Отже зі стеком виконується робота по принципу: «перший зайшов – останній вийшов». Для роботи зі стеком завжди необхідно мати одну змінну-посилання: first – для збереження адреси першого елементу стеку.

       
   


first

 

 

       
   
 
   
 
   
 
 

 

 


nil

Приклади основних операцій зі стеком

1. Створення стеку:

. . .{Опис вузла стеку дійсних чисел}

type

n=^uzel;

uzel=record

inf: real;

next: n;

end;

var

first: n; {Посилання на перший елемент стеку}

u: n: {Посилання на останній вузол стеку}

c: char;

 

 

{Введення першого елементу в стек}

new(u); first:=u;

writeln(‘Введите первый елемент’); readln(u^.info)

u^.next:=nil;

c:=’y’;

 

{Формування стеку в циклі }

while c=’y’ do

begin

{Ведення нового елементу в стек}

new(u); u^.next:=first;

writeln(‘Введите очередной елемент’); readln(u^.info);

first:=u;

writeln(‘Хотите продолжать?’); readln(c);

end;

 

2. Видалення першого елементу зі стеку

u:=first; first:=u^.next; Dispose(u);

 

Варіанти завдань:

1. Створити чергу дійсних чисел, в яку спочатку ввести додатні числа, потім – від’ємні. Видалити з черги всі додатні числа. Вивести оновлену чергу. Видалити чергу.

2. Створити стек натуральних чисел. Вивести на екран парні числа стеку, або повідомити, що таких в стеку немає. Видалити стек.

3. Створити чергу дійсних чисел, яка містить як додатні числа, так і від’ємні. На основі черги створити стек, який буде вміщати тільки додатні числа черги. Вивести вміст стеку на екран, або повідомити, що в черзі додатніх чисел немає. Видалити чергу. Видалити стек.

4. Створити стек натуральних чисел. На основі стеку створити чергу, яка буде вміщати тільки парні елементи стеку. Вивести на екран вміст черги, або повідомити, що в стеку парних чисел немає. Видалити стек. Видалити чергу.

5. Створити стек дійсних чисел, який містить як додатні числа, так і від’ємні. На основі стеку створити чергу, яка буде вміщати квадрати тільки від’ємних чисел стеку. Вивести вміст черги на екран. Видалити чергу. Видалити стек.

6. Створити чергу дійсних чисел. Видалити елементи з черги до першого від’ємного числа. Вивести на екран вміст оновленої черги, або повідомити, що від’ємних елементів в черзі немає. Видалити чергу.

7. Створити чергу натуральних чисел. На основі черги створити стек, який буде вміщати тільки парні елементи черги. Вивести на екран вміст стеку, або повідомити, що парних елементів в черзі немає. Видалити стек. Видалити чергу.

8. Створити стек натуральних чисел. Вивести на екран парні числа стеку. Створити чергу, яка буде вміщати квадрати парних чисел стеку. Вивести вміст черги на екран, або повідомити, що в стеку парних чисел немає. Видалити стек. Видалити чергу.

9. Створити чергу натуральних чисел, в якій спочатку йдуть парні числа, а потім – непарні. Видаляти з черги парні числа та одночасно заносити їх в стек. Вивести на екран вміст оновленої черги та створеного стеку. Видалити стек. Видалити чергу.

10. Створити стек дійсних чисел. Замінити в стеку всі від’ємні числа їх квадратами. Вивести вміст оновленого стеку, або повідомити, що в стеку від’ємних чисел немає. Видалити стек.

11. Створити чергу натуральних чисел. Замінити в черзі всі парні числа одиницею. Вивести вміст оновленої черги, або повідомити, що парних чисел в черзі немає. Видалити чергу.

12. Створити стек дійсних чисел. Створити другий стек, який буде вміщати тільки додатні елементи першого стеку. Вивести вміст другого стеку на екран, або повідомити, що в першому стеку додатніх чисел немає. Видалити обидва стеки.

13. Створити чергу дійсних чисел. Створити другу чергу, яка буде вміщати тільки додатні елементи першої. Вивести вміст другої черги на екран, або повідомити, що в першій додатніх чисел немає. Видалити обидві черги.

14. Створити чергу натуральних чисел. Вивести на екран парні числа черги. Створити стек, який буде вміщати квадрати парних чисел черги. Вивести вміст стеку на екран, або повідомити, що в черзі парних чисел немає. Видалити стек. Видалити чергу.

15. Створити чергу дійсних чисел. Створити стек, який буде вміщати елементи з черги до першого від’ємного числа. Вивести на екран вміст стеку, або повідомити, що від’ємних елементів в черзі немає. Видалити чергу. Видалити стек.

16. Створити чергу дійсних чисел, в яку спочатку ввести від’ємні числа, потім – додатні. Видалити з черги всі від’ємні числа. Вивести оновлену чергу. Видалити чергу.

17. Створити стек натуральних чисел. Вивести на екран непарні числа стеку, або повідомити, що таких в стеку немає. Видалити стек.

18. Створити чергу дійсних чисел, яка містить як додатні числа, так і від’ємні. На основі черги створити стек, який буде вміщати тільки від’ємні числа черги. Вивести вміст стеку на екран, або повідомити, що в черзі від’ємних чисел немає. Видалити чергу. Видалити стек.

19. Створити стек натуральних чисел. На основі стеку створити чергу, яка буде вміщати тільки непарні елементи стеку. Вивести на екран вміст черги, або повідомити, що в стеку непарних чисел немає. Видалити стек. Видалити чергу.

20. Створити стек дійсних чисел, який містить як додатні числа, так і від’ємні. На основі стеку створити чергу, яка буде вміщати квадрати тільки додатніх чисел стеку. Вивести вміст черги на екран. Видалити чергу. Видалити стек.

21. Створити чергу дійсних чисел. Видалити елементи з черги до першого додатного числа. Вивести на екран вміст оновленої черги, або повідомити, що додатніх елементів в черзі немає. Видалити чергу.

22. Створити чергу натуральних чисел. На основі черги створити стек, який буде вміщати тільки непарні елементи черги. Вивести на екран вміст стеку, або повідомити, що непарних елементів в черзі немає. Видалити стек. Видалити чергу.

23. Створити стек натуральних чисел. Вивести на екран непарні числа стеку. Створити чергу, яка буде вміщати квадрати непарних чисел стеку. Вивести вміст черги на екран, або повідомити, що в стеку непарних чисел немає. Видалити стек. Видалити чергу.

24. Створити чергу натуральних чисел, в якій спочатку йдуть непарні числа, а потім – парні. Видаляти з черги непарні числа та одночасно заносити їх в стек. Вивести на екран вміст оновленої черги та створеного стеку. Видалити стек. Видалити чергу.

25. Створити стек дійсних чисел. Замінити в стеку всі додатні числа їх квадратами. Вивести вміст оновленого стеку, або повідомити, що в стеку додатніх чисел немає. Видалити стек.

26. Створити чергу натуральних чисел. Замінити в черзі всі непарні числа одиницею. Вивести вміст оновленої черги, або повідомити, що непарних чисел в черзі немає. Видалити чергу.

27. Створити стек дійсних чисел. Створити другий стек, який буде вміщати тільки від’ємні елементи першого стеку. Вивести вміст другого стеку на екран, або повідомити, що в першому стеку від’ємних чисел немає. Видалити обидва стеки.

28. Створити чергу дійсних чисел. Створити другу чергу, яка буде вміщати тільки від’ємні елементи першої. Вивести вміст другої черги на екран, або повідомити, що в першій від’ємних чисел немає. Видалити обидві черги.

29. Створити чергу натуральних чисел. Вивести на екран непарні числа черги. Створити стек, який буде вміщати квадрати непарних чисел черги. Вивести вміст стеку на екран, або повідомити, що в черзі непарних чисел немає. Видалити стек. Видалити чергу.

30. Створити чергу дійсних чисел. Створити стек, який буде вміщати елементи з черги до першого додатнього числа. Вивести на екран вміст стеку, або повідомити, що додатніх елементів в черзі немає. Видалити чергу. Видалити стек.

31. Створити чергу натуральних чисел, в якій спочатку йдуть парні числа, а потім – непарні. Видаляти з черги парні числа та одночасно заносити їх в стек. Вивести на екран вміст оновленої черги та створеного стеку. Видалити стек. Видалити чергу.

 

Звіт з лабораторної роботи повинен вміщати наступні розділи:

 

1. Тема роботи.

2. Мета роботи.

3. Постановка задачі.

4. Опис структури вхідних та вихідних даних програми.

5. Текст програми мовою Turbo Pascal.

6. Копію вікна виконання програми на тестових вхідних даних.

7.Висновки.

 





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.