
- •Загальні методичні вказівки
- •Лабораторна робота № 1 Представлення в пам’яті комп’ютера даних цілих та дійсних типів
- •Тривалість роботи
- •Основні теоретичні положення
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •2. Знайти внутрішні представлення впк цілих та дійсних типів даних:
- •2.Індивідуальне завдання на лабораторну роботу
- •3.Алгоритм розв’язання задачі.
- •4.Система тестів
- •Лабораторна робота № 2 Перетворення типів даних
- •Вибір індивідуального завдання
- •Тривалість роботи
- •Основні теоретичні положення
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •Постановка задачі
- •3. Хід роботи Завдання 1
- •Завдання 2
- •4. Додаток
- •Лабораторна робота № 3 Структура даних стек
- •Вибір індивідуального завдання
- •Тривалість роботи
- •Основні теоретичні положення
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •Постановка задачі
- •3. Динаміка вмісту стеку(або масиву)
- •4. Алгоритм розв’язання задачі
- •5. Результати виконання програми
- •Лабораторна робота № 4 Структура даних черга
- •Вибір індивідуального завдання
- •Тривалість роботи
- •Теоретичні відомості
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •Постановка задачі
- •3. Динаміка вмісту черги(або деку)
- •4. Алгоритм розв’язання задачі
- •5. Результати виконання програми
- •Лабораторна робота № 5 Структура даних список
- •Вибір індивідуального завдання
- •Тривалість роботи
- •Основні теоретичні положення
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •2. Постановка задачі
- •3. Алгоритм розв’язання задачі.
- •4. Динаміка вмісту стеку.
- •Результати виконання програми
- •Лабораторна робота № 6 Методи сортування. Алгоритм вибірки
- •Індивідуальне завдання
- •Тривалість роботи
- •Основні теоретичні положення
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •2. Теоретичні відомості
- •Завдання:
- •Код програми
- •Лабораторна робота № 7 Методи сортування. Алгоритм бульбашки
- •Індивідуальне завдання
- •Тривалість роботи
- •Основні теоретичні положення
- •Порядок виконання роботи та методичні рекомендації щодо виконання роботи
- •Вимоги до оформлення звіту
- •Контрольні запитання
- •2. Теоретичні відомості
- •Завдання:
- •Перелік рекомендованих джерел
5. Результати виконання програми
Лабораторна робота № 5 Структура даних список
Мета роботи: Вивчення фундаментальної абстрактної структури даних списка. Набуття практичних навичок побудови списка, дослідження динаміки його вмісту та використання списків для розв'язання прикладних задач.
Завдання:
Завдання 5.1:
Використати для розв’язання задач клас list зі стандартної бібліотеки шаблонів STL .
1.
Многочлен виду
,
де
представити у вигляді зв’язаного
списку в якому кожний вузол має три
поля: одне – для коефіцієнта Сi
,
друге – для показника степеня ni
, третє – для вказівника на наступний
вузол списку. Для описаного представлення
многочленів програмно реалізувати такі
операції:
А) Додавання двох многочленів.
Б) Множення многочлена на одночлен.
В) Диференціювання многочлена.
2. Поліном від трьох змінних ( X , Y , Z ) представити у вигляді циклічного списку, в якому кожний вузол має п’ять полів: одне – для коефіцієнта члена поліному , друге – для показника степеня змінної X , третє – для показника степеня змінної Y, четверте – для показника степеня змінної Z, п’яте – для вказівника на наступний вузол списку. Елементи списку мають бути впорядковані спочатку по зменшенню степеня Х, пізніше по зменшенню степеня Y, а після цього по зменшенню степеня Z. Структура збереження поліномів повинна забезпечувати ефективне виконання таких операцій над ними:
А) Додавання двох поліномів.
Б) Обчислення полінома по заданим значенням X , Y , Z .
3. Написати програму для роботи з розрідженими матрицями, представленими у вигляді зв’язаних списків:
А) Транспонування розрідженої матриці, заданої у формі списків.
Б) Додавання двох матриць, заданих у формі списків.
4. Написати програму роботи з довгими числами (довгі числа – це числа, що виходять за діапазон допустимих значень будь-якого стандартного цілого або дійсного типу). Структура збереження довгих чисел повинна забезпечувати ефективну роботу з довільними (додатними і від’ємними) довгими цілими числами. Реалізувати роботу з довгими числами:
А) Додавання двох довгих чисел.
Б) Порівняння двох довгих чисел (дорівнює, не дорівнює, більше, менше).
В) Обчислення значення n!, де n > 12.
Завдання 5.2:
Побудувати динамічну структуру дани список, реалізований за допомогою вказівників.
1. Написати програму, яка будує лінійний зв’язаний список, що містить N випадкових цілих чисел з проміжку [100; 200], де N – випадкове число з проміжку [1 ; 20], а після цього переглядає список і дублює в списку всі вузли, що містять в інформаційному полі парні числа (Примітка.: дублює , тобто зразу після знайденого вузла створює ще один такий самий вузол).
2. Написати програму, яка будує лінійний зв’язаний список, що містить N великих літер латинського алфавіту, які вводяться з клавиатури, і перевіряє, чи будуть вузли списку впорядковані за алфавітом. (Примітка.: великі літери латинського алфавіту в таблиці ASCII мають номери від 65 до 90 ).
3. Написати програму, яка будує два лінійних зв’язаних списка SP1 i SP2, що містять відповідно по N1 i N2 випадкових дійсних чисел з проміжку [130; 310] і створює новий список SP3, який мiстить спiльнi елементи списків SP1 i SP2.
4. Написати програму, яка будує лінійний зв’язаний список, що містить N випадкових цілих чисел з проміжку [111 ; 222] і вилучає з нього кожний другий елемент.
5. Написати програму, яка вводить з клавіатури послідовність ненульових дійсних чисел (ввід числа 0 – признак кінця введення послідовності), будує лінійний зв’язаний список, що містить елементи цієї послідовності і розбиває побудований список на два рівних або майже рівних (якщо кількість елементів списку - непарне число) по довжині списка.
6. Написати програму, яка будує лінійний зв’язаний список, що містить N випадкових дійсних чисел з проміжку [1; 50] і інвертує побудований список, тобто робить перший елемент останнім, другий передостаннім і т.д. Виводити на екран монітора всі зміни, що будуть відбуватись у списку.
7. Написати програму, яка будує лінійний зв’язаний список List , що містить N випадкових цілих чисел з проміжку [100; 500] і створює новий список, який мiстить вузли побудованого списку List , інформаційні поля яких повторюються.
8. Написати програму, яка вводить послідовність з N випадкових цілих чисел, що належать проміжку [-10; 10], де N – випадкове число з проміжку [1 ; 20]. Всі додатні числа цієї послідовності додаються в лінійний зв’язаний список, а кожне від’ємне число вилучає зі списку відповідне додатнє число. Якщо такого числа немає у списку, то виводиться повідомлення про відсутність числа у списку. Виводити на екран монітора всі зміни, що будуть відбуватись у списку.
9. Написати програму, яка будує лінійний зв’язаний список, що містить N великих букв латинського алфавіту, які задаються випадковим чином, і перевіряє, чи перший елемент списку містить букву “А”, якщо це так, то додається ще одна буква “А” в кінець списку, якщо ні – то зі списку вилучаються всі букви “А”. Вивести отриманий результат. (Примітка: великі букви латинського алфавіту в таблиці ASCII мають номери від 65 до 90).
10. Написати програму, яка будує лінійний зв’язаний список, що містить N випадкових дійсних чисел з проміжку [30; 80] і міняє місцями значення кожних двох сусідніх елементів списку, тобто значення першого елемента міняється зі значенням другого, третього з четвертим і т.д.