
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
МАШИНОБУДІВНИЙ КОЛЕДЖ
ДОHБАСЬКОЇ ДЕРЖАВНОЇ МАШИHОБУДІВНОЇ АКАДЕМІЇ
МЕТОДИЧНІ ВКАЗІВКИ ТА ЗАВДАННЯ
ДО ПРАКТИЧНИХ РОБІТ
з дисциплін
АЛГОРИТМИ ТА СТУКТУРИ ДАНИХ
для студентів денної форми навчання
спеціальності 5.05010301 Розробка програмного забезпечення
2012
М
етодичні
вказівки та завдання до практичних
робіт з дисциплін «Алгоритми та структури
даних» й «Теорія
алгоритмів» для студентів
денної форми навчання./ Сост. Дерека
Л.В. – Краматорськ: МК ДДМА, 2012 – 28 с.
Розглянуто і схвалено на засіданні циклової комісії Електротехнічних дисциплін та комп’ютерно-інтегрованих технологій
Протокол №___ від « »______ 2012 р.
Голова__________Л.А. Чернікова
ЗМІСТ
ЗМІСТ 3
Практична робота № 1 5
Тема: Реалізація списків на основі масивів 5
Завдання 5
Звіт повинен містити 7
Практична робота № 2 8
Тема: Реалізація записів 8
Завдання 8
Звіт повинен містити 10
Практична робота № 3 11
Тема: Реалізація векторів та таблиць 11
Завдання 11
Звіт повинен містити 12
Практична робота № 4 13
Тема: Реалізація Стеків та черг. 13
Завдання 13
Звіт повинен містити 15
Практична робота № 5 16
Тема: Реалізація списків на основі вказівників та курсорів 16
Звіт повинен містити 18
Практична робота № 6 19
Тема: Реалізація дерев 19
Звіт повинен містити 22
Практична робота № 7 23
Тема: Реалізація бінарних дерев 23
Завдання 1 23
Звіт повинен містити 24
Практична робота № 8 25
Тема: Реалізація методів пошуку 25
Завдання 25
Звіт повинен містити 26
Практична робота № 9 27
Тема: Реалізація сортування методом «бульбашки» 27
Завдання 27
Звіт повинен містити 27
Практична робота № 10 28
Тема: Реалізація сортування вибором 28
Завдання 28
Звіт повинен містити 28
Практична робота № 11 29
Тема: Реалізація швидкого сортування 29
Завдання 29
Звіт повинен містити 29
Практична робота № 12 30
Тема: Реалізація сортування вставками 30
Завдання 30
Звіт повинен містити 30
Практична робота № 13 31
Тема: Реалізація пірамідального сортування 31
Завдання 31
Звіт повинен містити 31
ПЕРЕЛІК ЛІТЕРАТУРИ 32
Практична робота № 1 Тема: Реалізація списків на основі масивів
Ціль роботи: набуття навичок реалізації списків та роботи з масивами
Завдання
Скласти програму для занесення в масив таблиці квадратів для чисел від 1 до 8 з кроком 0.4. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення радіуса в довжину кільця для значень радіуса від 1 до 5 з кроком 0.3. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення центнерів в кілограми для значень від 1 до 3 з кроком 0.3 центнера. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення температури з градусів по шкалі Цельсія (С) в градуси шкали Фаренгейта (F) за формулою F=1.8*C+32 для значень від 10 до 20 градусів з кроком 2 градуси. Вивести масив на екран.
Скласти програму для занесення в масив таблиці коренів квадратних для чисел від 10 до 50 з кроком 5. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення кілометрів у метри для значень від 1 до 2 з кроком 0.2 кілометра. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення радіан в градуси (1 радіан = 57.3 градуси) для значень від 0 до 6 з кроком 0.5 радіан. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення пудів в кілограми (1 пуд = 16 кг) для значень від 1 до 6 з кроком 0.5 пуда. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення гектарів в сотки (1 га = 100 соток) для значень від 1 до 50 з кроком 5 га. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення радіуса в площу кола для значень радіуса від 1 до 18 з кроком 2. Вивести масив на екран.
Скласти програму для занесення в масив таблиці відповідності між вагою в фунтах і вагою в кг для значень від 1 до 30 фунтів з кроком 3 фунт (1 фунт = 0.4 кг.) Вивести масив на екран.
Скласти програму для занесення в масив таблиці співвідношення між кутами в радіанах і градусах для значень від 0 до 5 радіан з кроком 0.5. Вивести масив на екран.
Скласти програму для занесення в масив таблиці квадратів для чисел від 1 до 8 з кроком 0.4. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення радіуса в довжину кільця для значень радіуса від 1 до 5 з кроком 0.3. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення центнерів в кілограми для значень від 1 до 3 з кроком 0.3 центнера. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення температури з градусів по шкалі Цельсія (С) в градуси шкали Фаренгейта (F) за формулою F=1.8*C+32 для значень від 10 до 20 градусів з кроком 2 градуси. Вивести масив на екран.
Скласти програму для занесення в масив таблиці коренів квадратних для чисел від 10 до 50 з кроком 5. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення кілометрів у метри для значень від 1 до 2 з кроком 0.2 кілометра. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення радіан в градуси (1 радіан = 57.3 градуси) для значень від 0 до 6 з кроком 0.5 радіан. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення пудів в кілограми (1 пуд = 16 кг) для значень від 1 до 6 з кроком 0.5 пуда. Вивести масив на екран.
Написати таблицю переведення гектарів в сотки (1 га = 100 соток) для значень від 1 до 50 з кроком 5 га. Вивести масив на екран.
Скласти програму для занесення в масив таблиці переведення радіуса в площу круга для значень радіуса від 1 до 18 В кроком 2. Вивести масив на екран.
Скласти програму для занесення в масив таблиці відповідності між вагою в фунтах і вагою в кг для значень від 1 до 30 фунтів з кроком 3 фунт (1 фунт = 0.4 кг.) Вивести масив на екран.
Скласти програму для занесення в масив таблиці співвідношення між кутами в радіанах і градусах для значень від 0 до 5 радіан з кроком 0.5. Вивести масив на екран.
Звіт повинен містити
Тема й ціль роботи
Завдання.
Хід роботи.
Код програми.
Висновок.
Практична робота № 2
Тема: Реалізація записів
Ціль роботи: придбання і закріплення навичок у роботі із записами, в інтеграції даних, в модульному програмуванні
Завдання
Для заданої прикладної області розробити опис об'єктів цієї області. Розробити процедури, що реалізують базові операції над цими об'єктами, зокрема:
текстове введення-виведення (консольне і файлове);
присвоєння;
задання константних значень;
порівняння (не менше як 2 типи).
Підготувати файл початкових даних, що містять не менше як 10 значень конкретних об'єктів.
Використовуючи процедури і описи модуля типу даних, розробити програму, що забезпечує введення початкових даних з першого файлу даних в пам'ять і зберігання їх в масиві, сортування масиву за алфавітним і за числовим параметром.
Для кожної області перераховані параметри об'єкту. Серед параметрів обов'язково є ключове алфавітне поле (наприклад, прізвище), яке ідентифікує об'єкт, у кожного об'єкту є також одне або декілька числових полів, за якими вірогідні звертання до об'єкту.
Набір характеристик може бути розширений і ускладнений на розсуд виконавця.
Таблиця 2.1 – Варіанти індивідуальних завдань
№ |
Прикладна область |
Атрибути інформації |
1 |
Відділ кадрів |
прізвище співробітника, ім'я, по батькові, посада, стаж роботи,оклад |
2 |
Червона книга |
вид тварини, рід, сімейство, популяція, проживання, чисельність популяції |
3 |
Виробництво |
позначення виробу, група до якої цей виріб відноситься, рік випуску, обсяг випуску, витрату металу |
4 |
Персональні комп'ютери |
фірма-виробник, тип процесора, тактова частота, місткість ОЗП, місткість жорсткого диска |
5 |
Бібліотека |
автор книги, назва, рік видання, код УДК, ціна, кількість у бібліотеці |
6 |
Супутники планет |
назва, назва планети-господаря, рік відкриття, діаметр, період обігу |
7 |
Радіодеталі |
позначення, тип, номінал, кількість у схемі, позначення можливого замінника |
8 |
Текстові редактори |
найменування, фірма-виробник, кількість вікон, кількість шрифтів, вартість |
9 |
Телефонна станція |
номер абонента, прізвище, адреса, наявність блокування, заборгованість |
10 |
Побут студентів |
прізвище студента, ім'я, по батькові, факультет, розмір стипендії, кількість членів сім'ї |
11 |
Спортивні змагання |
прізвище спортсмена, ім'я, команда, вид спорту, заліковий результат, штрафні очки |
12 |
Змагання факультетів за успішність |
факультет, кількість студентів, середній бал по факультету, кількість відмінників, кількість двієчників |
13 |
Роботи, виконані студентами |
прізвище студента, ім'я, по батькові, факультет, вид робіт, заробіток |
14 |
Сільське господарство |
найменування с/г підприємства, вид власності, кількість працівників, основний вид продукції, прибуток |
15 |
Відомості про сім'ю студента |
прізвище студента, ім'я, по батькові, факультет, спеціальність батька, спеціальність матері, кількість братів і сестер |
16 |
Скотарство |
вид тварин, кількість особин у стаді у віці до 1 року, кількість особин віком 1 - 3 років, понад 3 роки, смертність у кожній групі, народжуваність |
17 |
Мікросхеми пам'яті |
позначення, розрядність, місткість, час доступу, кількість у схемі, вартість |
№ |
Прикладна область |
Атрибути інформації |
18 |
Опис зображення |
тип фігури (квадрат, коло і т.ін.), координати на площині, числові характеристики, периметр, площа |
19 |
Лісове господарство |
найменування зеленого масиву, площа, основна порода, середній вік, густина дерев на один кв.км |
20 |
Міський транспорт |
вид транспорту, номер маршруту, початкова зупинка, кінцева зупинка, час у дорозі |
Звіт повинен містити
Тема й ціль роботи
Завдання.
Хід роботи.
Код програми.
Висновок.
Практична робота № 3
Тема: Реалізація векторів та таблиць
Ціль роботи: набуття навичок розміщення в пам'яті векторів і таблиць
Завдання
Розробити спосіб економного зберігання в пам'яті розріджених матриць (таблиць). Розробити процедури і функції для забезпечення доступу (читання-запис) до елементів матриці.
У контрольному прикладі забезпечити читання і запис всіх елементів матриці. Оцінити час виконання операцій.
Таблиця 3.1 – Варіанти індивідуальних завдань
№ |
Завдання |
1 |
Підрахувати всі нульові елементи, розміщені в лівій частині матриці. |
2 |
Підрахувати всі нульові елементи, розміщені в правій частині матриці. |
3 |
Підрахувати всі нульові елементи, розміщені вище головної діагоналі. |
4 |
Підрахувати всі нульові елементи, розміщені у верхній частині матриці. |
5 |
Підрахувати всі нульові елементи, розміщені в нижній частині матриці. |
6 |
Підрахувати всі нульові елементи непарних рядків. |
7 |
Підрахувати всі нульові елементи парних рядків. |
8 |
Підрахувати всі нульові елементи непарних стовпців. |
9 |
Підрахувати всі нульові елементи парних стовпців. |
10 |
Підрахувати всі нульові елементи, розміщені у шаховому порядку, починаючи з 1-го елементу 1-ого рядка. |
11 |
Підрахувати всі нульові елементи, розміщені у шаховому порядку, починаючи з 2-го елементу 1 -ого рядка. |
12 |
Підрахувати всі нульові елементи, розміщені на місцях з парними індексами рядків і стовпців. |
13 |
Підрахувати всі нульові елементи, розміщені на місцях з непарними індексами рядків і стовпців. |
14 |
Підрахувати всі нульові елементи, розміщені вище від головної діагоналі у непарних рядках і нижче від головної діагоналі - у парних. |
№ |
Завдання |
15 |
Підрахувати всі нульові елементи, розміщені нижче від головної діагоналі на непарних рядках і вище від головної діагоналі — у парних. |
16 |
Підрахувати всі нульові елементи, розміщені на головній діагоналі, в перших 3 рядках вище від діагоналі і в останніх 2 рядках нижче від діагоналі. |
17 |
Підрахувати всі нульові елементи, розміщені на головній діагоналі і у верхній половині області вище від діагоналі. |
18 |
Підрахувати всі нульові елементи, розміщені на головній діагоналі і в нижній половині області нижче від діагоналі. |
19 |
Підрахувати всі нульові елементи, розміщені у рядках, індекси яких кратні 3. |
20 |
Матриця розділена діагоналями на 4 трикутники. Підрахувати нульові елементи верхнього і нижнього трикутників. |
21 |
Підрахувати нульові елементи, розміщені у верхній і нижній четвертинах матриці. |
22 |
Підрахувати нульові елементи, розміщені у лівій і правій четвертинах матриці. |
23 |
Підрахувати нульові елементи, розміщені у лівій і верхній четвертинах матриці. |
24 |
Підрахувати нульові елементи, розміщені у рядках, індекси яких кратні 3. |
25 |
Підрахувати нульові елементи, розміщені нуа стовпцях, індекси яких кратні 3. |
26 |
Підрахувати нульові елементи, розміщені у верхній третині рядків і середній третині стовпців. |
27 |
Підрахувати нульові елементи, розміщені у верхній третині рядків, першій і третій третині стовпціів. |
28 |
Підрахувати нульові елементи, розміщені у верхньому і нижньому трикутнику, за умови розділення матриці діагоналями на 4 трикутники. |
29 |
Підрахувати нульові елементи, розміщені у лівому і правому трикутнику, за умови розділення матриці діагоналями на 4 трикутники. |
30 |
Підрахувати нульові елементи, розміщені на головній діагоналі і в нижній половині матриці нижче від діагоналі, індекси яких кратні 3. |
Звіт повинен містити
Тема й ціль роботи
Завдання.
Хід роботи.
Код програми.
Висновок.
Практична робота № 4
Тема: Реалізація Стеків та черг.
Ціль роботи: набуття навичок моделювання зв'язаних динамічних структур даних і роботи з ними
Завдання
Розробити підпрограми, які забезпечують занити на запис або читання даних із черги, стека або дека.
Для організації вказаних структур використовувати масиви або списки. Перевірити працездатність розроблених підпрограм.
Послідовність виконання операцій запису або читання вибираються випадково.
Порівняти результати роботи, зробити висновки.
Таблиця 4.1 – Варіанти індивідуальних завдань
№ |
Завдання |
1 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів у чергу виконується за пріоритетом, зняття - з молодших адрес (засади черги). Черга організована у масиві зі зсувом після кожного читання, і на масиві зі зсувом після досягнення межі пам'яті, яка виділена для черги. Пріоритет: мінімальне значення числового параметра, при збігу параметрів - LIFO. |
2 |
Розробити підпрограми роботи з деком. Дек організований у масиві з циклічним заповненням і з використанням двонапрямленого списку. Операції виконуються з обох кінців дека. |
3 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів у чергу виконується підряд у кінець черги, зняття – по пріоритету. Черга організована на масиві або списку. Пріоритет: мінімальне значення числового параметра, при збігу параметрів - LIFO. |
4 |
Розробити підпрограми роботи зі стеком. Стек організований у масиві з використанням двонапрямленого списку. |
5 |
Розробити підпрограми рботи з деком. Дек організований у масиві з циклічним заповненням і з використанням двонаправленого списку. Операції виконуються з різних кінців дека |
№ |
Завдання |
6 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів у чергу виконується за пріоритетом, зняття - з молодших адрес (початок черга). Черга організована на масиві з циклічним заповненням і зі зсувом. Пріоритет: max значення числового параметра, при збігу параметрів-FIFO. |
7 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів у чергу виконується за пріоритетом, зняття - зі старших адрес (кінець черги). Черга організована у масиві або у списку. Пріоритет: максимальне значення числового параметра, при збігу параметрів — FIFO. |
8 |
Розробити підпрограми роботи з деком. Дек організований у масиві з циклічним заповненням і зі зсувом. Операції виконуються з обох кінців дека |
9 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів у чергу виконується за пріоритетом, зняття — з молодших адрес (початок черги). Черга організована на масиві з циклічним заповненням і у списку. Пріоритет: максимальне значення числового параметра, при збігу параметрів - FIFO. |
10 |
Розробити підпрограми роботи з деком. Дек організований у масиві з циклічним заповненням і зі зсувом. Операції виконуються з різних кінців дека. |
11 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів у чергу виконується за пріоритетом, зняття - з молодших адрес (початок черги). Черга організована на масиві зі зсувом після кожного читання і у масиві зі зсувом після досягнення межі пам'яті, яка виділена для черги. Пріоритет: максимальне значення числового параметра, при збігу параметрів - FIFO. |
12 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів в чергу виконується по пріоритету, зняття — з молодших адрес (початок черги). Черга організована на масиві з циклічним заповненням і зі зсувом. Пріоритет: мінімальне значення числового параметра, при збігу параметрів- LIFO. |
13 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів в чергу виконується за пріоритетом, зняття — зі старших адрес (кінець черги). Черга організована у масиві і у списку. Пріоритет: min значення числового параметра, при збігу параметрів -LIFO. |
14 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів у чергу виконується за пріоритетом, зняття - з молодших адрес (початок черги). Черга організована у масиві з циклічним заповненням і у списку. Пріоритет: мінімальне значення числового параметра, при збігу параметрі в - LIFO. |
15 |
Розробити підпрограми роботи з пріоритетною чергою. Встановлення запитів у чергу виконується підряд у кінець черги, зняття – за пріоритетом. Черга організована у масиві і у списку. Пріоритет: максимальне значення числового параметра, при збігу параметрів - FIFO. |
16 |
Розробити процедуру хешування масиву записів, в який передбачається часте додавання даних. |