Читайте также:
|
|
Тема: функції та класи з шаблонами
Варіант 1
Створити функцію сортування (впорядковування) одновимірного масиву з елементами довільного типу. Передбачити параметр функції, який дає змогу виконувати впорядковування елементів масиву: а) по збільшенню значень елементів; б) по зменшенню.
Варіант 2
Написати функцію, яка створює копію іншого двовимірного динамічного масиву довільного типу.
Варіант 3
Створити функцію, яка знаходить найбільший і найменший елементи одновимірного масиву довільного типу.
Варіант 4
Створити функцію, яка створює одновимірний динамічний масив таким чином, що він є конкатенацією (тобто отриманий з’єднанням) двох заданих масивів одного і того ж типу. Застосувати шаблони таким чином, щоб конкатенацію можна було виконувати з масивами довільного типу.
Варіант 5
Створити динамічний клас з шаблонами для роботи з однови-мірними масивами. Передбачити можливість застосування створеного класу для випадків, коли елементи масиву мають будь-який числовий тип. Здійснити перевантаження операцій:
" = " - динамічне присвоєння,
" + " - поелементне додавання,
" * " - скалярне множення масивів,
" << " - циклічне переставлення елементів масиву уліво,
" >> " - циклічне переставлення елементів масиву управо,
" [ ] " - доступ до елементу по індексу з контролем.
Варіант 6
Створити динамічний клас з шаблонами для роботи з послідов-
ностями абстрактних символів із деякого алфавіту. Передбачити шаблони для таких випадків: символ є ціле число, символ є символом ASCII, символ є рядок символів ASCII, символ є вектор на площині. Максимальну довжину послідовності і код завершення послідовності вибрати самостійно. Перевантажити операції:
" = " - динамічне присвоєння,
" + " - конкатенація (з’єднання) рядків,
" - " - вилучення підрядку,
" <= " - відношення "менше чи дорівнює",
" >= " - відношення "більше чи дорівнює",
" == " - відношення "дорівнює".
За відношення порядку ("менше", "більше", "менше чи дорівнює", "більше чи дорівнює") вважати відношення лексикографічного порядку. Крім того, перевантажити операції введення значення вказаного класу із файлу і виведення у файл з символами " << ", " >> ".
Варіант 7
Створити клас для роботи з множинами. Тип елемента множини - довільний, застосувати шаблони. Здійснити перевантаження символів операцій:
" = " - присвоєння,
" + " - об’єднання множин,
" - " - віднімання множин,
" * " - переріз множин,
" <= " - відношення включення (перевіряється, чи є множина, що надана лівим операндом, підмножиною множини, що надана правим операндом),
" == " - еквівалентність множин,
" << " - належність (перевіряється, чи належить значення, що надане лівим операндом, до множини, що надана правим операндом).
Варіант 8
Створити клас List для роботи із структурою типу "однозв’язний список". Тип елемента списку - довільний, застосувати шаблони. Передбачити функції для виконання таких операцій:
putinbeg - створити новий елемент списку у його початку;
getoutbeg - добути і вилучити перший елемент списку;
putinend - створити новий елемент списку у його кінці;
getoutend - добути і вилучити останній елемент списку;
print - вивести список на екран.
Варіант 9
Створити клас Astack - стек, що базується на масиві покажчиків фіксованого розміру. Передбачити, щоб стек мав можливість вміщувати значення довільного типу, застосувати шаблони. Передбачити функції для виконання таких операцій:
push - занести у стек значення типу Тype;
pop - добути і вилучити значення із вершини стека;
print - вивести усі значення стека на екран;
num - повернути кількість значень, що знаходяться у стеку.
Варіант 10
Створити клас Aqueue - структура типу черга, що базується на масиві покажчиків фіксованого розміру. Передбачити, щоб черга мала можливість вміщувати значення довільного типу, застосувати шаблони.
Передбачити функції - члени класу для виконання таких операцій:
add - занести у чергу надане значення;
pop - добути і вилучити значення із черги;
print - вивести усі значення із черги на екран;
num - повернути кількість значень, що знаходяться у черзі;
isempty - повернути значення true (тип bool), якщо черга пуста.
Варіант 11
Створити клас Lstack - стек, що базується на структурі зв’язного списку. Передбачити, щоб стек мав можливість вміщувати значення довільного типу, застосувати шаблони. Передбачити функції - члени класу для виконання таких операцій:
push - занести у стек надане значення;
pop - добути і вилучити значення із вершини стека;
print - вивести усі значення стека на екран;
num - повернути кількість значень, що знаходяться у стеку;
isempty - повернути значення true (тип bool), якщо черга пуста.
Вказівки.
Передбачити обробку виключної ситуації: добування значення із порожнього стека.
Варіант 12
Створити клас Lqueue - структура типу "черга", що базується на структурі зв’язного списку. Вважати, що тип значення, що зберігаються у черзі, може бути довільним, застосувати шаблони.
Передбачити функції для виконання таких операцій:
add - занести у кінець черги значення типу Тype;
pop - добути і вилучити значення із початку черги;
print - вивести усі значення, що знаходяться у черзі, на екран;
num - кількість значень, що знаходяться у черзі;
isempty - повернути значення true (тип bool), якщо черга пуста.
Вказівки.
Передбачити обробку виключної ситуації: добування значення із порожньої черги.
Дата добавления: 2015-11-14; просмотров: 69 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Лабораторна робота 5 | | | Запис текстів програм. Стиль ЗНТУ-2003 |