- •Факультет інформатики та обчислювальної техніки
- •1 Зміст та оформлення лабораторної роботи
- •2 Теми лабораторних робот
- •3 Варіанти завдань до лабораторних робот
- •Лабораторна робота 1
- •Лабораторна робота 2
- •Лабораторна робота 3
- •Лабораторна робота 4
- •Лабораторна робота 5
- •Лабораторна робота 6
- •Лабораторна робота 7
- •Лабораторна робота 8
- •4 Довідкова інформація
- •5 Література
- •Запорізький національний технічний університет
- •Застосування конструкторів і деструкторів у класах
Лабораторна робота 4
Тема: перевантаження операцій
Варіант 1
Створити динамічний клас для виконання операцій з динамічними масивами чисел дійсного типу. Зробити перевантаження символів операцій:
"=" - динамічне присвоєння,
"+" - по елементне додавання,
"-" - по елементне віднімання,
"*" - скалярне множення масивів,
"<<" - циклічне переставлення елементів масиву уліво,
">>" - циклічне переставлення елементів масиву управо,
"[]" - доступ до елементу з контролем.
Тип елементу масиву обрати самостійно. У класі передбачити конструктор ініціалізації, конструктор копіювання, деструктор.
Варіант 2
Створити динамічний клас для роботи з рядками (послідовнос-
тями символів). Максимальна довжина послідовності - 65535, код завершення послідовності - нуль. Здійснити перевантаження символів операцій:
" + " - конкатенація (з’єднання) рядків,
" - " - вилучення підрядку,
" < " - відношення "менше",
" <= " - відношення "менше чи дорівнює",
" > " - відношення "більше",
" >= " - відношення "більше чи дорівнює",
" == " - відношення "дорівнює",
" != " - відношення "не дорівнює".
За відношення порядку ("менше", "більше", "менше чи дорівнює", "більше чи дорівнює") вважати відношення лексикографічного порядку (тобто того порядку, що реалізується у звичайному словнику або у картотеці). У класі передбачити конструктор ініціалізації, конструктор копіювання, деструктор.
Варіант 3
Створити динамічний клас для роботи з рядками. Максимальна довжина послідовності - 254. Перший байт повинен містити інформацію про фактичну кількість елементів масиву. Здійснити перевантаження операцій:
" = " - присвоєння,
" + " - конкатенація (з’єднання) рядків,
" <= " - відношення "менше чи дорівнює",
" >= " - відношення "більше чи дорівнює",
" == " - відношення "дорівнює",
" != " - відношення "не дорівнює".
У класі передбачити конструктор ініціалізації, конструктор копіювання, деструктор.
Варіант 4
Створити клас для роботи з множинами цілих чисел. Максимальна кількість елементів множини - 65534. Здійснити перевантаження символів операцій:
" = " - присвоєння,
" + " - об’єднання множин,
" - " - віднімання множин,
" * " - переріз множин,
" <= " - відношення включення (перевіряється, чи є множина, що надана лівим операндом, підмножиною множини, що надана правим операндом),
" == " - еквівалентність множин,
" != " - нееквівалентність множин,
" << " - належність (перевіряється, чи належить значення, що надане лівим операндом, до множини, що надана правим операндом),
У класі передбачити конструктор ініціалізації, конструктор копіювання, деструктор.
Варіант 5
Створити клас для виконання точних обчислень з раціональними числами. Здійснити перевантаження символів операцій:
" = " - присвоєння,
" + " - додавання,
" - " - віднімання,
" * " - добуток,
" == " , " != " - рівність, не рівність,
" < " , " <= " , " > " , " >= " - відношення порядку,
" << " , " >> " - читання з файлу та запис у файл.
Створити функцію скорочення раціонального числа (приведення до нормальної форми). У класі передбачити конструктор ініціалізації, конструктор копіювання, деструктор.
Варіант 6
Створити клас для виконання операцій з трьохвимірними векторами. Вважати, що компоненти вектора мають дійсний тип. Конкретний тип для компонентів вектора обрати самостійно. Здійснити перевантаження символів операцій:
" + " - додавання векторів,
" - " - векторне віднімання,
" * " - скалярний добуток векторів,
" == " , " != " - рівність, не рівність,
" << " , " >> " - читання з файлу та запис у файл.
Передбачити функцію обчислення довжини вектора, конструктор ініціалізації.