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

Лабораторна робота 3 Динамічні класові типи

Варіант 1

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

- динамічного присвоєння; - поелементного складання та віднімання; - об’єднання двох масивів у один (конкатенація); - упорядкування масиву по збільшенню та по зменшенню;

- консольне введення та виведення масиву.

Написати програму, яка доводить правильність роботи створеного класу.

Варіант 2

Створити динамічний клас для роботи з рядками символів. Максимальна довжина послідовності - 65535. Передбачити функції для виконання таких операцій:

- ініціалізація з ASCIZ-рядка (тобто з рядка, що завершується нуль-байтом);

- введення з клавіатури і з файлу;

- виведення на екран та у файл;

- повернення кількості символів;

- конкатенація рядків.

Написати програму, яка доводить правильність роботи створеного класу.

Варіант 3

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

Написати програму, яка доводить правильність роботи створеного класу.

Варіант 4

Створити клас для роботи з множинами цілих чисел використовуючи як базову структуру динамічний одновимірний масив. Максимальна кількість елементів множини - 65535, інтервал значень елементів множини [0, 65535]. Передбачити функції для виконання таких операцій:

- ініціалізація за допомогою зовнішнього масиву відповідного типу;

- введення з клавіатури і з файлу;

- виведення на екран та у файл;

- об’єднання множин;

- переріз множин;

- перевірка еквівалентності.

Написати програму, яка доводить правильність роботи створеного класу.

Вказівка

Множина є набір елементів, кожен з яких має унікальне значення.

Варіант 5

Створити класи List та Elementдля роботи із структурою типу "однозв’язний список". Клас Listповинен відповідати списку у цілому, а клас Element-елементу списка. Інформаційний компонент елементу списка - рядок символів (можна застосувати бібліотечний тип string). У зазначених класах передбачити функції для виконання таких операцій:

List::pushbeg - створити новий елемент списку у його початку;

List::pushend - створити новий елемент списку у його кінці;

List::popbeg - добути і вилучити перший елемент списку;

List::popend - добути і вилучити останній елемент списку;

Element::print - вивести на екран значення наданого елементу списка;

List::print - вивести на екран значення всіх елементів списка.

Написати програму, яка доводить правильність роботи створеного класу.

Варіант 6

Створити клас Astack - стек, що базується на масиві фіксованого розміру. Передбачити, щоб стек мав можливість вміщувати значення типу string (рядок символів).

Передбачити функції для виконання таких операцій:

push - занести у стек нове значення;

get-добути значення із вершини стека;

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

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

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

Написати програму, яка доводить правильність роботи створеного класу.

Варіант 7

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

push - занести у чергу надане значення;

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

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

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

Написати програму, яка доводить правильність роботи створеного класу.

Варіант 8

Створити клас Bitv для роботи з бітовими векторами довільної довжини. Бітовий вектор - послідовність значень, які можуть мати значення 0 (не істина) або 1 (істина). Кожен елемент бітового вектору повинен займати у пам’яті один біт. Для розміщення бітового вектора у пам’яті застосувати динамічний масив відповідного розміру. Тип елемента масиву - носія бітового вектора - беззнаковий, розміром 1, 2 або 4 байти.

У класі Bitv передбачити такі функції:

Bitv() - конструктор без параметрів, створює бітовий вектор нульової довжини;

Bitv(char*) - конструктор для ініціалізації за допомогою значення, наданого текстовим рядком;

Bitv(Bitv&) - конструктор копіювання;

~Bitv() - деструктор;

Bitv operator~() - операція побітової інверсії;

Bitv operator&(Bitv&) - побітова операція "І" (кон’юнкція);

Bitv operator|(Bitv&) - побітова операція "АБО" (диз’юнкція);

Bitv& operator=(Bitv&) - операція присвоєння;

size() - розмір бітового вектора у пам’яті (кількість слів).

Написати програму, яка доводить правильність роботи створеного класу.

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