Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
rgz_oop_03.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
169.47 Кб
Скачать

2Порядок виконання та індівідуальні завдання

2.1Порядок виконання роботи

Робота над РГЗ складається з двох етапів, що повинні завершуватись оформленням відповідного звіту відповідно до [].

Перший етап виконується у першому модулі і присвячений розробці шаблонних функцій. Другий етап виконується у другому модулі і присвячений розробці шаблонних класів відповідно до індивідуального завдання.

Завдання підвищеної складності призначене для ознайомлення зі стандартною бібліотекою шаблонів (STL). Його виконують студенти, що бажають отримати оцінку “А” за системою ECTS.

Звіт з кожного етапу повинен містити:

  • індивідуальні завдання;

  • алгоритми роботи шаблонних функцій;

  • тексти програм;

  • результати тестування програм.

2.2Індивідуальні завдання для розробки шаблонних функцій

Таблиця 2.1 – Індивідуальні завдання 1

Завдання

1

2

1

Створити функцію сортування одновимірного масиву з елементами довільного типу методом вставки. Передбачити параметр функції, що дає змогу виконувати впорядковування елементів масиву:

  • по збільшенню значень елементів;

  • по зменшенню

2

Написати функцію, що створює копію іншого двовимірного динамічного масиву довільного типу.

3

Створити функцію, що знаходить найбільший і найменший елементи одновимірного масиву довільного типу

Продовження таблиці 2.1

1

2

4

Створити функцію, яка створює одновимірний динамічний масив таким чином, що він є конкатенацією (тобто отриманий з’єднанням) двох заданих масивів одного і того ж типу. Застосувати шаблони таким чином, щоб конкатенацію можна було виконувати з масивами довільного типу

5

Написати шаблон функції, що виконує швидкий пошук елемента у одновимірному масиві довільного типу.

6

Створити функцію сортування одновимірного масиву з елементами довільного типу методом обміну. Передбачити параметр функції, який дає змогу виконувати впорядковування елементів масиву:

  • по збільшенню значень елементів;

  • по зменшенню

7

Створити функцію сортування одновимірного масиву з елементами довільного типу методом виділення. Передбачити параметр функції, який дає змогу виконувати впорядковування елементів масиву:

  • по збільшенню значень елементів;

  • по зменшенню

2.3Індивідуальні завдання для розробці шаблонних класів

Таблиця 2.2 – Завдання для розробки шаблонних класів

Завдання

1

2

1

Створити шаблоний клас Aqueue – структура типу черга, що базується на масиві покажчиків фіксованого розміру. Передбачити функції – члени класу для виконання таких операцій:

аdd – занести у чергу надане значення;

pop – добути і вилучити значення із черги;

print – вивести усі значення із черги на екран;

num – повернути кількість значень, що знаходяться у черзі;

isempty – повернути значення true (тип bool), якщо черга пуста.

Продовження таблиці 2.2

1

2

2

Створити шаблонний клас Astack – стек, що базується на масиві покажчиків фіксованого розміру. Передбачити функції для виконання таких операцій:

рush – занести у стек значення типу Тype;

рop – добути і вилучити значення із вершини стека;

рrint – вивести усі значення стека на екран;

num – повернути кількість значень, що знаходяться у стеку.

3

Створити шаблоний клас List для роботи із структурою типу "однозв’язний список". Тип елемента списку – довільний, застосувати шаблони. Передбачити функції для виконання таких операцій:

рutinbeg – створити новий елемент списку у його початку;

getoutbeg – добути і вилучити перший елемент списку;

putinend – створити новий елемент списку у його кінці;

getoutend – добути і вилучити останній елемент списку;

print – вивести список на екран;

4

Створити шаблонний динамічний клас DynArr для роботи з одновимірними масивами. Здійснити перевантаження символів операцій:

« = « – динамічне присвоєння,

« + « – по елементне додавання,

« * « – скалярне множення масивів,

« [ ] « – доступ до елементу з контролем.

5

Створити шаблонний динамічний клас DynArr для роботи з одновимірними масивами. Здійснити перевантаження символів операцій: « = « – динамічне присвоєння.

Крім того перевантажити операції введення із файлу і виведення у файл з символами « << « , « >> « таким чином:

f << A або A >> f – виведення (запис) значення A у файл f,

f >> A або A << f – введення (читан.) значення A з файлу f.

Тип елементу масиву обрати самостійно.

Продовження таблиці 2.2

1

2

6

Створити шаблонний клас для роботи з множинами . Максимальна кількість елементів множини – 65534. Здійснити перевантаження символів операцій:

« = « – присвоєння,

« + « – об’єднання множин,

« <= « – відношення включення (перевіряється, чи є множина, що надана лівим операндом, підмножиною множини, що надана правим операндом),

« == « – еквівалентність множин.

7

Створити шаблонний клас для роботи з множинами . Максимальна кількість елементів множини – 65534. Здійснити перевантаження символів операцій: «=» – присвоєння,

Крім того перевантажити операції введення із файлу і виведення у файл з символами « << « , « >> « таким чином:

f << A або A >> f – виведення (запис) значення A у файл f,

f >> A або A << f – введення (читан.) значення A із файлу f.

8

Створити динамічний шаблонний клас для виконання операцій з динамічними масивами чисел. Зробити перевантаження символів операцій:

"=" – динамічне присвоєння,

"+" – по елементне додавання,

"<<" – циклічне переставлення елементів масиву уліво,

">>" – циклічне переставлення елементів масиву управо.

9

Створити шаблонний клас для виконання операцій з трьохвимірними векторами. Конкретний тип для компонентів вектора обрати самостійно. Здійснити перевантаження символів операцій:

" + " – додавання векторів,

" – " – векторне віднімання,

" * " – скалярний добуток векторів,

" == " , " != "– рівність, не рівність,

" << " , " >> "– читання з файлу та запис у файл.

Продовження таблиці 2.2

1

2

10

Створити шаблонний клас для виконання операцій з трьохвимірними векторами. Конкретний тип для компонентів вектора обрати самостійно. Здійснити перевантаження символів операцій:

" + " – додавання векторів,

" – " – векторне віднімання,

Крім того перевантажити операції введення із файлу і виведення у файл з символами " << " , " >> " таким чином:

f << A або A >> f – виведення (запис) значення A у файл f,

f >> A або A << f – введення (читан.) значення A із файлу f.

11

Створити динамічний шаблонний клас Stack. Клас повинен вміщувати відповідні функції. Використати розроблений клас для формування інформації про потяг (Train), де кожний елемент містить інформацію про вагон (Carriage): кількість місць, рік виробництва.

12

Створити динамічний шаблонний клас однозв’язний список – List. Клас повинен містити відповідні функції. Використати розроблений клас для формування інформації про маршрут (Route), де кожний елемент зупинка містить наступну інформацію: назва, час прибуття, час відправлення, начальник станції.

13

Створити динамічний шаблонний клас Queue з відповідними функціями. Використати розроблений клас для моделювання конвеєрної лінії виробництва, де кожний елемент деталь містить наступну інформацію: назва, вага, ідентифікаційний номер (id), ідентифікатор гідності.

14

Створити динамічний шаблонний клас DynArr. Використайте розроблений клас для зберігання інформації про компакт-диски: назва, ідентифікаційний номер (id), тривалість, виконавець.

15

Створити динамічний шаблонний клас двонаправлена черга.. Використати розроблений клас для зберігання інформації про книжки: назва, автор, кількість сторінок, рік та місце видання.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]