Тема: Використання двійкових дерев.
Завдання.
1. Виконати при різних вхідних даних програми із файлів ЕХ-TREE1.PAS i EX-TREE2.PAS, в яких містяться підпрограми для виконання основних операцій над двійковими деревами.
2. Розв’язати вправу із 8.
I | II | III | IV | V | VI |
17.7а | 17.8а | 17.8г | 17.7д | 17.7е | 17.8д |
VII | VIII | IX | X | XI | XII |
17.7и | 17.8ж | 17.7в | 17.8в | 17.7г | 17.7з |
Вказівка.
Для створення дерев, їх роздрукування та виконання основних операцій опищіть відповідні підпрограми, а розділ виконуваних операторів самої програми скомпонуйте як послідовність викликів відповідних підпрограм. Прослідкуйте за способом занесення елементів в дерево та способом їх обходу.
Контрольні запитання
1. Дати різні означення поняття двійкового дерева.
2. Що називається рівнем, листком дерева?
3. Які способи обходу елементів дерева Ви можете назвати?
4. В яких прикладних задачах доцільно використовувати такі структури даних як двійкові дерева?
5. Які міркування покладені в основу операції вилучення елемента із впорядкованого дерева?
6. Зобразити ідеально–збалансоване дерево, в яке під час створення були послідовно занесені числа від 1 до 15?
Лабораторна робота №19 (4 год.)
Тема: Побудова графiчних зображень.
Завдання:
1. Виконати програми, якi були запропонованi Вам як приклади в лекцiйному курсi. Програми знаходяться на диску в окремих файлах.
2. Побудувати графiки:
а) неперервної функцiї;
б) розривної функцiї, зобразивши її асимптоту у виглядi пунктирної лiнiї, та
в) графiк кривоi, заданоi параметричними рiвняннями.
Пiд кожним графiком зробити пiдпис. Умови задач взятi iз збiрника [1].
I | II | III | IV | V | VI |
337з | 337ж | 337е | 337д | 337г | 337в |
846б | 846в | 846г | 846д | 846е | 846ж |
847з | 847д1 | 848б | 847в | 847г | 847д1 |
VII | VIII | IX | X | XI | XII |
337б | 337а | 844е | 844г | 844б | 844д |
846з | 846и | 846к | 846м | 846а | 846б |
847д2 | 847е | 847ж | 847з | 847и (1<а) | 847и(1>а) |
3. Побувати зображення фiгур, якi вказанi у вправi 129 збiрника [1] та розфарбувати iх.
I | II | III | IV | V | VI |
129à | 129á | 129â | 129â | 129ã | 129ä |
VII | VIII | IX | X | XI | XII |
129æ | 129ç | 129è | 129ê | 129ë | 129í |
Контрольні запитання
1. Що означає ініціалізація графічного режиму? Як це робиться?
2. Чи можна із графічного режиму роботи екрану монітора перейти в текстовий і навпаки?
3. Які процедури модуля Graph використовуються для встановлення кольору тексту та кольору фону?
4. Які стандартні процедури модуля Graph використовуються для побудови основних графічних примітивів?
5. Як в мові Паскаль здійснюється зафарбовування областей?
6. Описати в словесній формі алгоритм побудови графіка функції, заданої аналітично у вигляді залежності у=f(х) та параметрично.
Лабораторна робота №20.
Тема: Побудова рухомих графічних зображень.
Завдання:
1. Побудувати зображення кораблика з лiвої сторони екрану монiтора, який видно на горизонтi мiж морською поверхнею i небосхилом, i перемiстити його (кораблик) з лiвої сторони екрану до правої.
2. Скласти програму пiд умовною назвою "Карусель". На кожнiй iз чотирьох екранних сторiнок побувати 16 розташованих по колу зафарбованих у рiзнi кольори кружечкiв (по 4 кружечки кожного кольору, кольори кружечкiв повиннi циклiчно чергуватись). Причому, зображення на кожнiй наступнiй екраннiй сторiнцi повинно утворюватись iз зображення, яке побудоване на попереднiй сторiнцi шляхом його повороту на кут рiвний 1/16 повного оберту. Таке ж саме спiввiдношення повинно виконуватись мiж зображеннями, якi мiстяться на 3-й (останнiй) i 0-й (першiй) сторiнках. Далi потрiбно органiзувати циклiчне виведення зображень iз екранних сторiнок на екран монiтора.
3. Отримати на екранi дисплея наступне зображеня: У верхнiй частинi екрану з лiвої сторони червоним кольором малюється сонце, яке рухаеться горизонтально вправо i зупиняеться посерединi екрану. Пiд сонцем з'являеться чоловiчок у стилi оповiдань А. Конан Дойля (див., наприклад, задачу 967 iз [1]) i починае виконувати гiмнастичнi вправи на 4 такти. Далi чоловiчок приймае вихiдне положення "струнко", а сонце рухаеться горизонтально до правої сторони екрану. Рух сонця пропонуеться здiйснити за допомогою процедури PutImage, а кожне положення гiмнастичної вправи (кожний такт) варто зобразити на однiй iз екранних сторiнок i виводити цi зображення по черзi на екран дисплея.
Контрольні запитання
1. Які прийоми покладені в основу анімації зображень шляхом копіювання їх в пам’ять та відтворення на екрані? Які стандартні засоби мови паскаль для цього використовуються?
2. В який спосіб можна організувати покадрову мультиплікаційну прокрутку, використовуючи екранні сторінки? Навести приклад того, як можна організувати циклічний перегляд зображень із 4 екранних сторінок?
3. Як можна організувати перемикання між двома екранними сторінками?
Лабораторна робота №21.
Тема: Використання модуля CRT.
Мета: Оволодіти основними прийомами роботи із клавіатурою, використовуючи стандартні засоби мови Turbo-Pascal, навчитись керувати виведенням інформації на екран монітора для текстових режимів роботи.
Необхідний теоретичний матеріал: модуль Crt, процедури та функції для керування виведенням інформації на текстовий екран.
Завдання:
1. Скласти програму, виконуючи яку можна було б перемiщати заданий символ (наприклад, '#') по екрану монiтора за допомогою клавiш iз стрiлочками. При цьому за допомогою функцiональних клавiш Ви повиннi мати можливiсть перемикати наступнi режими роботи:
F1 — символ, який перемiщається по екрану монiтора залишає за собою слiд / не залишає за собою слiду;
F2 — перемикання мiж текстовими режимами 80х25 i 80х40;
F3 — змiна кольору тексту i кольору фону.
Пам'ятайте, що при натискуваннi на клавiшi iз стрiлочками i на функцiональнi клавiшi в буфер клавiатури вводяться розширенi коди, якi складаються з двох байтiв, перший з них — це 00h.
2. Скласти програму під умовною назвою “Конфетті”. На екран монітора у випадкові знакомісця повинні виводитись випадковим чином вибрані символи. Колір кожного символа і фону для нього теж потрібно вибирати випадковим чином. Програма повинна працювати до моменту натискування на довільну клавішу.
Контрольні запитання
1. Яким в мові паскаль передбачено перемикання текстових режимів роботи?
2. Які групи символів, що вводяться з клавіатури виділяють?
3. Навести приклади символів, що мають двобайтові розширення коди?
4. За допомогою якої функції можна перевірити наявність символів в буфері клавіатури?
5. За допомогою якої функції можна зчитати черговий символ із буфера клавіатури?
6. Яка процедура здійснює ініціалізацію датчика випадкових чисел?
7. Як в мові паскаль утворюються випадкові цілі та дійсні числа?
8. В якому вигляді зображення, яке міститься на текстовому екрані зберігається в пам’яті комп’ютера?
9. Яка структура байта атрибутів кольорів?
10. Як можна змінити форму курсора для текстових режимів?
Лаборатона робота №22.
Тема: Створення власного бібліотечного модуля.
Завдання:
1. Скласти програму, яка би на екрані монітора формувала текстову заставку у вигляді своєрідного меню, яке складається із пронумерованого списка задач. Для розв’язування цих задач розробити відповідні підпрограми і включити їх в окремий бібліотечний модуль користувача. Створений окремо модуль підключити до програми, яка формує меню. Вибравши задачу із меню, яку Ви хочете розв’язати, по її номеру, потрібно для отримання розв’язку скористатись відповідною підпрограмою із бібліотеки. Після розв’язання чергової задачі Ваша програма повинна повертати Вас до основного меню. В меню включити не менше 4-ох задач. Пропонується вибрати задачі на обробку масивів і стрічок із відомих Вам збірників. Останнім пунктом меню повинна бути команда виходу із меню (і завершення роботи всієї програми відповідно).
Контрольні запитання
1. Що таке бібліотечний модуль?
2. Які стандартні бібліотечні модулі в мові паскаль Ви знаєте?
3. Яка структура бібліотечного модуля користувача?
4. Який порядок формування бібліотечних модулів?.