Лабораторна робота № 1
"Програмування у середовищі C++ Builder "
Розробити программу в оболонці C++Builder, яка б демонструвала властивості, методи та події заданої компоненти. Продемонструвати особливості її дизайну і функціонування.


Приклад. Демонстрація компоненти текстового поля Edit (яке знаходиться на закладці Standard).
Призначення компоненти.
Компонента Edit призначена для вводу даних, а саме невеликих стрічок або чисел. Її основна властивість – це властивість “Text”.
Дизайн компоненти.
Компонента ставиться на форму послідовним її вибором в палітрі компонент і кліком мишки на формі. В режимі дизайну властивість “Text” можна змінити в вікні ObjectInspector. Змінимо текст компоненти на “Hello World!”. На другій закладці Events окрім інших подій, властивих більшості компонент (OnClick, OnDblClick, і.т.д.) є характерна для цієї компоненти властивість OnChange, що виконуватиметься у випадку коли текст у компоненті зміниться. Текст програмами, який опрацьовуватиме цю подію можна писати після подвійного кліку на цій компоненті.
Демонстрація методів і властивостей компоненти.
Поставимо на форму напис Label1 і текстове поле Edit1. У програмному коді події OnChange текстового поля Edit1напишемо наступний код:
Label1->Caption = Edit1->Text;
Label1->Caption = Edit1->Text.UpperCase();
Button. Демонстрація.
Запустимо програму і спробуємо змінити текст у полі.
Варіанти для самостійного виконання:
Компонента MainMenu , закладка Standard.
Компонента ActionList , закладка Standard.
Компонента PopupMenu , закладка Standard.
Компонента DrawGrid, закладка Additional.
Компонента Memo, закладка Standard.
Компонента Image, закладка Additional.
Компоненти Radiobutton та Radiogroup, закладка Standard.
Компонента Chart, закладка Additional.
Компонента SpinEdit, закладка Samples.
Компонента ImageList, закладка Win32.
Компонента ListBox, закладка Standard.
Компонента RichEdit, закладка Win32.
Компонента ComboBox, закладка Standard.
Компонента ToolBar, закладка Win32.
Компонента ScrollBar, закладка Standard.
Компонента StatusBar, закладка Win32.
Компонента MaskEdit, закладка Additional.
Компонента TreeView, закладка Win32.
Компонента StringGrid, закладка Additional.
Компонента ListView, закладка Win32.
Компонента ScrollBox, закладка Additional.
Компонента Timer, закладка System.
Компонента CheckListBox, закладка Additional.
Компоненти OpenDialog i SaveDialog, закладка Dialogs
Компонента TrackBar, закладка Win32.
Компоненти FindDialog i ReplaceDialog, закладка Dialogs.
Компонента PageControl, закладка Win32.
Компонента Animate, закладка Win32.
Компонента ProgresBar, закладка Win32.
Компонента MonthCalendar, закладка Win32.
Лабораторна робота № 2
"Класові типи. Використання класових типів та управління об'єктами"
Завдання
Написати програму алгоритмічною мовою С++ згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування оформити у вигляді процедури; обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).
Розробити два варіанти розв'язку задачі:
використовуючи клас двомірного масиву та функції-члени;
використовуючи клас одномірного масиву, функції-члени та дружні функції.
Зміст звіту
Завдання.
Блок-схеми основної програми та окремих функцій.
Текст програми.
Результат виконання програми.
Таблиця 1
№ п/п
Алгоритм впорядкування матриці
Алгоритм для розрахунку
fi(aij) та F(fi(aij))

1
Впорядкувати елементи стовпців матриці за спаданням їх значень методом простої вибірки
fi(aij)-максимальний елемент у кожному рядку матриці; F(fi(aij))-сума fi(aij).

2
Впорядкувати елементи рядків матриці за зростанням їх значень методом бульбашки
fi(aij)-мінімальний елемент у кожному стовпці матриці; F(fi(aij))-добуток fi(aij)

3
Впорядкувати елементи
стовпців матриці за зростанням їх значень методом простої вибірки
fi(aij)-сума елементів у кожному рядку матриці; F(fi(aij))-середнє геометричне значення fi(aij)

4
Впорядкувати елементи рядків матриці за спаданням їх значень методом простої вибірки
fi(aij)-добуток елементів у кожному стовпці матриці; F(fi(aij))-середнє арифметичне значення fi(aij)

5
Впорядкувати елементи стовпців матриці за зростанням їх значень методом бульбашки
fi(aij)-середнє арифметичне значення елементів у кожному рядку матриці; F(fi(aij))-добуток fi(aij)

6
Впорядкувати елементи рядків матриці за спаданням їх значень методом простої вибірки
fi(aij)-середнє геометричне значення елементів у кожному стовпці матриці; F(fi(aij))-сума fi(aij)

7
Впорядкувати елементи стовпців матриці за зростанням їх значень методом простої вибірки
fi(aij)-добуток елементів у кожному рядку під головною діагоналлю матриці; F(fi(aij))-сума fi(aij)

8
Впорядкувати елементи рядків матриці за спаданням їх значень методом бульбашки
fi(aij)-сума елементів у кожному стовпці над головною діагоналлю матриці; F(fi(aij))-добуток fi(aij)

9
Впорядкувати елементи рядків матриці за зростанням їх значень методом простої вибірки
fi(aij)-сума елементів у кожному стовпці над допоміжною діагоналлю матриці; F(fi(aij))-середнє геометричне значення fi(aij)

10
Впорядкувати елементи стовпців матриці за спаданням їх значень методом бульбашки
fi(aij)-добуток елементів у кожному рядку під допоміжною діагоналлю матриці; F(fi(aij))-середнє арифметичне значення fi(aij)

11
Впорядкувати елементи рядків матриці за зростанням їх значень методом простої вибірки
fi(aij)-середнє арифметичне значення елементів у кожному стовпці під головною діагоналлю матриці; F(fi(aij))-добуток fi(aij)


12
Впорядкувати елементи стовпців матриці за спаданням їх значень методом бульбашки
fi(aij)-середнє геометричне значення елементів в кожному рядку над головною діагоналлю матриці; F(fi(aij))-сума fi(aij)

13
Впорядкувати елементи рядків матриц за спаданням їх значень методом простої вибірки
fi(aij)-середнє арифметичне значення елементів у кожному стовпці над допоміжною діагоналлю матриці; F(fi(aij))-добуток fi(aij)

14
Впорядкувати елементи рядків матриці за зростанням їх значень методом бульбашки
fi(aij)-сума елементів у кожному стовпці під допоміжною діагоналлю матриці; F(fi(aij)) –середнє геометричне значення fi(aij)

15
Впорядкувати елементи стовпців матриці за зростанням їх значень методом простої вибірки
fi(aij)-добуток елементів у кожному рядку над головною діагоналлю; F(fi(aij))-середнє арифметичне значення fi(aij)

16
Впорядкувати елементи рядків матриці за спаданням їх значень методом простої вибірки
fi(aij)-сума елементів у кожному стовпці під головною діагоналлю матриці; F(fi(aij))-середнє геометричне значення fi(aij)

17
Впорядкувати елементи стовпців матриці за зростанням їх значень методом бульбашки
fi(aij)-середнє геометричне значення елементів у кожному рядку матриці; F(fi(aij))-середнє арифметичне значення fi(aij)

18
Впорядкувати елементи рядків матриці за спаданням їх значень методом простої вибірки
fi(aij)-середнє арифметичне значення еле-ментів у кожному стовпці над допоміжною діагоналлю; F(fi(aij))- добуток fi(aij)

19
Впорядкувати елементи стовпців матриці за зростанням їх значень методом простої вибірки
fi(aij)-середнє геометричне значення елементів у кожному рядку над головною діагоналлю; F(fi(aij))-сума fi(aij)

20
Впорядкувати елементи рядків матриці за спаданням їх значень методом бульбашки
fi(aij)- добуток елементів у кожному стовпці під головною діагоналлю матриці; F(fi(aij))- середнє арифметичне значення fi(aij)

21
Впорядкувати елементи стовпців матриці за зростанням їх значень методом простої вибірки
fi(aij)- добуток елементів у кожному рядку над допоміжною діагоналлю матриці; F(fi(aij))- сума fi(aij)

22
Впорядкувати елементи рядків матриці за спаданням їх значень методом бульбашки
fi(aij)- середнє арифметичне значення елементів у кожному стовпці матриці; F(fi(aij))- середнє геометричне значення fi(aij)

23
Впорядкувати елементи стовпців матриці за зростанням їх значень методом простої вибірки
fi(aij)- сума елементів у кожному рядку над головною діагоналлю матриці; F(fi(aij))- середнє геометричне значення fi(aij)

24
Впорядкувати елементи рядків матриці за спаданням їх значень методом бульбашки
fi(aij)- добуток елементів у кожному стовпці під допоміжною діагоналлю матриці; F(fi(aij))-середнє арифметичне значення fi(aij)

25
Впорядкувати елементи стовпців матриці за спаданням їх значень методом простої вибірки
fi(aij)- середнє геометричне значення елементів у кожному рядку під головною діагоналлю матриці; F(fi(aij))- сума fi(aij)


Питання для самоконтролю
Поясніть правила доступу до членів класу, оголошених в різних областях класу.
Поясніть основні правила взаємодії даних-членів і функцій-членів класу.
Оголошення і використання статичних, константних та mutable даних і функцій членів класу.
Поясніть призначення, декларацію і визначення конструкторів і деструкторів.
Поясніть призначення дружніх функцій класу та способи їх оголошення.
Поясніть механізм створення об’єктів.
Які побічні ефекти можуть виникати при присвоєнні об’єктів?
Як виконується ініціалізація масивів об’єктів?
Які побічні ефекти можуть виникати при передачі об’єктів функціям?
Які побічні ефекти можуть виникати при поверненні об’єкта функцією?
Лабораторна робота № 3
"Використання класових типів та управління доступом
до членів классу ( методи та параметри).
Використання конструкторів та деструкторів."
Завдання
Написати програму алгоритмічною мовою С++ згідно з завданням, отриманим від викладача. Програма повинна реалізувати функційність об'єкта заданого класу у відповідності із завданням. В програмі потрібно задіяти застосування різних прав доступу до методів та параметрів класу, конструктори й деструктори.
Зміст звіту
Завдання.
Блок-схеми основної програми та окремих функцій.
Текст програми.
Результат виконання програми.
Завдання.
Реалізувати клас для забезпечення роботи з масивами.
Ініціалізація масиву.
Сортування масиву з параметром спадання/зростання.
Визначення довжини масиву.
Доступ до окремих елементів масиву.
Доступ до цілого масиву (повернення вказівника на масив).
Реалізувати клас для забезпечення роботи із стрічками.
Ініціалізація стрічки.
Визначення довжини стрічки.
Пошук елементів у стрічці.
Вставка і вилучення елементів у стрічці.
Доступ до окремих елементів стрічки.
Реалізувати клас для забезпечення роботи із фігурою трикутник.
Визначення довжин сторін.
Визначення висоти трикутника.
Визначення кутів і типу трикутника(гострокутній, тупокутній, прямокутній).
Визначення площі і периметру трикутника.
Реалізувати клас для забезпечення роботи із об’єктом кімната
Ініціалізація об’єктам кімната (введення ширини довжини, висоти, кількості дверей, вікон та їх площ).
Визначення площі кімнати.
Визначення об'єму кімнати.
Визначення площі стін з урахуванням вікон та дверей/без урахування вікон та дверей.
Реалізувати клас для забезпечення роботи із фігурою паралелограм.
Визначення довжин сторін.
Визначення гіпотенузи.
Визначення кутів паралелограма.
Визначення площі і периметру.
Реалізувати клас для забезпечення роботи із стрічками.
Ініціалізація стрічки.
Визначення довжини стрічки.
Перевірка чи є стрічка числом і яким (int. float).
Переведення стрічки у число відповідного типу.
Переведення числа у стрічку.
Питання для самоконтролю
Поясніть правила доступу до членів класу, оголошених в різних областях класу.
Поясніть основні правила взаємодії даних-членів і функцій-членів класу.
Оголошення і використання статичних, константних та mutable даних і функцій членів класу.
Поясніть призначення, декларацію і визначення конструкторів і деструкторів.
Поясніть призначення дружніх функцій класу та способи їх оголошення.
Поясніть механізм створення об’єктів.
Які побічні ефекти можуть виникати при присвоєнні об’єктів?
Як виконується ініціалізація масивів об’єктів?
Які побічні ефекти можуть виникати при передачі об’єктів функціям?
Які побічні ефекти можуть виникати при поверненні об’єкта функцією?
Лабораторна робота № 4
"Класи. Робота з динамічною памяттю"
Завдання
Написати програму алгоритмічною мовою С++ згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування оформити у вигляді процедури; обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).
Масиви визначити динамічними. Продемонструвати використання операторів new та delete.
Розробити два варіанти розв'язку задачі:
використовуючи клас двомірного масиву та функції-члени;
використовуючи клас одномірного масиву, функції-члени та дружні функції.
Зміст звіту
Завдання.
Блок-схеми основної програми та окремих функцій.
Текст програми.
Результат виконання програми.
Таблиця 1
№ п/п
Алгоритм впорядкування матриці
Алгоритм для розрахунку
fi(aij) та F(fi(aij))

1
Впорядкувати елементи рядків матриці за спаданням їх значень методом бульбашки
fi(aij)- добуток елементів у кожному стовпці під головною діагоналлю матриці; F(fi(aij))- середнє арифметичне значення fi(aij)

2
Впорядкувати елементи стовпців матриці за зростанням їх значень методом простої вибірки
fi(aij)- добуток елементів у кожному рядку над допоміжною діагоналлю матриці; F(fi(aij))- сума fi(aij)

3
Впорядкувати елементи рядків матриці за спаданням їх значень методом бульбашки
fi(aij)- середнє арифметичне значення елементів у кожному стовпці матриці; F(fi(aij))- середнє геометричне значення fi(aij)

4
Впорядкувати елементи стовпців матриці за зростанням їх значень методом простої вибірки
fi(aij)- сума елементів у кожному рядку над головною діагоналлю матриці; F(fi(aij))- середнє геометричне значення fi(aij)

5
Впорядкувати елементи рядків матриці за спаданням їх значень методом бульбашки
fi(aij)- добуток елементів у кожному стовпці під допоміжною діагоналлю матриці; F(fi(aij))-середнє арифметичне значення fi(aij)

6
Впорядкувати елементи стовпців матриці за спаданням їх значень методом простої вибірки
fi(aij)- середнє геометричне значення елементів у кожному рядку під головною діагоналлю матриці; F(fi(aij))- сума fi(aij)

7
Впорядкувати елементи рядків матриці за зростанням їх значень методом простої вибірки
fi(aij)-середнє арифметичне значення елементів у кожному стовпці під головною діагоналлю матриці; F(fi(aij))-добуток fi(aij)

8
Впорядкувати елементи стовпців матриці за спаданням їх значень методом бульбашки
fi(aij)-середнє геометричне значення елементів в кожному рядку над головною діагоналлю матриці; F(fi(aij))-сума fi(aij)

9
Впорядкувати елементи рядків матриц за спаданням їх значень методом простої вибірки
fi(aij)-середнє арифметичне значення елементів у кожному стовпці над допоміжною діагоналлю матриці; F(fi(aij))-добуток fi(aij)

10
Впорядкувати елементи рядків матриці за зростанням їх значень методом бульбашки
fi(aij)-сума елементів у кожному стовпці під допоміжною діагоналлю матриці; F(fi(aij)) –середнє геометричне значення fi(aij)

11
Впорядкувати елементи стовпців матриці за зростанням їх значень методом простої вибірки
fi(aij)-добуток елементів у кожному рядку над головною діагоналлю; F(fi(aij))-середнє арифметичне значення fi(aij)

12
Впорядкувати елементи рядків матриці за спаданням їх значень методом простої вибірки
fi(aij)-сума елементів у кожному стовпці під головною діагоналлю матриці; F(fi(aij))-середнє геометричне значення fi(aij)

13
Впорядкувати елементи стовпців матриці за зростанням їх значень методом бульбашки
fi(aij)-середнє геометричне значення елементів у кожному рядку матриці; F(fi(aij))-середнє арифметичне значення fi(aij)

14
Впорядкувати елементи рядків матриці за спаданням їх значень методом простої вибірки
fi(aij)-середнє арифметичне значення еле-ментів у кожному стовпці над допоміжною діагоналлю; F(fi(aij))- добуток fi(aij)

15
Впорядкувати елементи стовпців матриці за зростанням їх значень методом простої вибірки
fi(aij)-середнє геометричне значення елементів у кожному рядку над головною діагоналлю; F(fi(aij))-сума fi(aij)

16
Впорядкувати елементи стовпців матриці за спаданням їх значень методом простої вибірки
fi(aij)-максимальний елемент у кожному рядку матриці; F(fi(aij))-сума fi(aij).

17
Впорядкувати елементи рядків матриці за зростанням їх значень методом бульбашки
fi(aij)-мінімальний елемент у кожному стовпці матриці; F(fi(aij))-добуток fi(aij)

18
Впорядкувати елементи
стовпців матриці за зростанням їх значень методом простої вибірки
fi(aij)-сума елементів у кожному рядку матриці; F(fi(aij))-середнє геометричне значення fi(aij)

19
Впорядкувати елементи рядків матриці за спаданням їх значень методом простої вибірки
fi(aij)-добуток елементів у кожному стовпці матриці; F(fi(aij))-середнє арифметичне значення fi(aij)

20
Впорядкувати елементи стовпців матриці за зростанням їх значень методом бульбашки
fi(aij)-середнє арифметичне значення елементів у кожному рядку матриці; F(fi(aij))-добуток fi(aij)

21
Впорядкувати елементи рядків матриці за спаданням їх значень методом простої вибірки
fi(aij)-середнє геометричне значення елементів у кожному стовпці матриці; F(fi(aij))-сума fi(aij)

22
Впорядкувати елементи стовпців матриці за зростанням їх значень методом простої вибірки
fi(aij)-добуток елементів у кожному рядку під головною діагоналлю матриці; F(fi(aij))-сума fi(aij)

23
Впорядкувати елементи рядків матриці за спаданням їх значень методом бульбашки
fi(aij)-сума елементів у кожному стовпці над головною діагоналлю матриці; F(fi(aij))-добуток fi(aij)

24
Впорядкувати елементи рядків матриці за зростанням їх значень методом простої вибірки
fi(aij)-сума елементів у кожному стовпці над допоміжною діагоналлю матриці; F(fi(aij))-середнє геометричне значення fi(aij)

25
Впорядкувати елементи стовпців матриці за спаданням їх значень методом бульбашки
fi(aij)-добуток елементів у кожному рядку під допоміжною діагоналлю матриці; F(fi(aij))-середнє арифметичне значення fi(aij)


Питання для самоконтролю
Поясніть правила доступу до членів класу, оголошених в різних областях класу.
Поясніть основні правила взаємодії даних-членів і функцій-членів класу.
Оголошення і використання статичних, константних та mutable даних і функцій членів класу.
Поясніть призначення, декларацію і визначення конструкторів і деструкторів.
Поясніть призначення дружніх функцій класу та способи їх оголошення.
Поясніть механізм створення об’єктів.
Які побічні ефекти можуть виникати при присвоєнні об’єктів?
Як виконується ініціалізація масивів об’єктів?
Які побічні ефекти можуть виникати при передачі об’єктів функціям?
Які побічні ефекти можуть виникати при поверненні об’єкта функцією?
Лабораторна робота № 5
"Перевантаження функцій і операцій"
Завдання
Написати програму алгоритмічною мовою С++ згідно із завданням, отриманим від викладача за табл. 1. Реалізувати заданий класовий тип із заданими методами, використовуючи механізм перевантаження функцій та операцій, а також значення параметрів за замовчуванням.
Написати фрагмент програми з використанням класового типу та заданих методів.
Зміст звіту
Завдання.
Блок-схеми алгоритмів функцій.
Текст програми.
Результат виконання програми.
Таблиця 1
№ п/п
Класовий тип
Методи класу

1
Комплексне число
Перевантажити операції +, -, *, виводу <<, вводу >>, ==, >, < для об'єктів класу, а також дружні операції +, -= для масивів комплексних чисел.

2
Одномірний масив A[N]
Конструктор повинен дозволяти створювати об'єкти з ініціалізацією і без ініціалізації. Перевантажити операції +, *<тип>, виводу <<, вводу >>, =, == для об'єктів класу, а також дружні операції <тип>*, -=<тип>.

3
Двомірний масив A[N][N]
Конструктор повинен дозволяти створювати об'єкти з ініціалізацією і без ініціалізації. Перевантажити операції +, *, =, виводу <<, вводу >> для об'єктів класу, а також дружні операції <тип>+, /=<тип>.

4
Динамічний одномірний масив *p
Конструктор повинен дозволяти створювати об'єкти з ініціалізацією і без неї. Визначити конструктор копій. Перевантажити операції +, =, виводу <<, вводу >> для об'єктів класу, а також дружні операції *=<тип>, <тип>+.

5
Динамічний двомірний масив **p
Конструктор повинен дозволяти створювати об'єкти з ініціалізацією і без неї. Визначити конструктор копій. Перевантажити операції -, =, виводу <<, вводу >> для об'єктів класу, а також дружні операції <тип>*, +=.

6
Прямокутник зі сторонами a і b
Конструктор повинен дозволяти ініціалізацію прямокутника і спрощену ініціалізацію квадрата. Визначення площі. Перевантажити операції ==, <, >, виводу <<, вводу >>, а також дружню операцію *=<тип>.

7
Трикутник із основою a , висотою h та кутами при основі ?? і?????
Конструктор повинен дозволяти спрощену ініціалізацію прямокутного та рівностороннього трикутників. Визначення площі, визначення периметра. Перевантажити операції ==, <, >, виводу <<, вводу >>, а також дружню операцію /=<тип>.

8
Еліпс з радіусами rx і ry
Конструктор повинен дозволяти спрощену ініціалізацію кола. Визначення площі, визначення периметра. Перевантажити операції ==, <, >, виводу <<, вводу >>, а також дружню операцію *=<тип>.

9
Відрізок на координатній площині [p1;p2]
Конструктор повинен визначати довільний або одиничний відрізок в центрі координат. Визначення довжини відрізка. Перевантажити операції ==, <, >, виводу <<, вводу >>, а також дружню операцію <<= для повороту відрізка на кут ?.

10
Трикутник на координатній площині [p1;p2;p3]
Конструктор повинен визначати довільний або рівносторонній трикутник в центрі координат. Визначення периметра. Перевантажити операції ==, виводу <<, вводу >>, а також дружню операцію += для переміщення трикутника на [dx; dy].

11
Прямокутник на координатній площині [p1;p2;p3;p4];
Конструктор повинен визначати довільний прямокутник або квадрат в центрі координат. Визначення площі. Перевантажити операції ==, виводу <<, вводу >>, а також дружню операцію *= для маштабування прямокутника на [sx; sy].

12
N-кутник на координатній площині [p1;p2;...;pN]
Конструктор повинен визначати довільний N-кутник з можливістю ініціалізації. Перевантажити операції ==, виводу <<, вводу >>, а також дружню операцію >>= для переміщення N-кутника на [dx;dy].

13
Двійковий 12-розрядний регістр
Конструктор повинен дозволяти ініціалізацію регістра довільним значенням або нулем. Перевантажити операції ++, ==, виводу <<, вводу >>, а також дружні операції -=<int>, <<=<int>.

14
Відрізок в просторі [p1;p2];
Конструктор повинен визначати довільний або одиничний відрізок в центрі координат. Визначення довжини відрізка. Перевантажити операції ==, <, >, виводу <<, вводу >>, а також дружню операцію *= для маштабування відрізка на [sx; sy].

15
Трикутник в просторі [p1;p2;p3]
Конструктор повинен визначати довільний або рівносторонній трикутник в центрі координат. Визначення периметра. Перевантажити операції ==, виводу <<, вводу >>, а також дружню операцію <<= для повороту трикутника на кут ?.

16
Прямокутник в просторі [p1;p2;p3;p4];
Конструктор повинен визначати довільний прямокутник або квадрат в центрі координат. Визначення площі. Перевантажити операції ==, виводу <<, вводу >>, а також дружню операцію *= для масштабування прямокутника на [sx; sy].

17
N-кутник в просторі [p1;p2;...;pN]
Конструктор повинен визначати довільний N-кутник з можливістю ініціалізації. Перевантажити операції ==, виводу <<, вводу >>, а також дружню операцію >>= для переміщення N-кутника на [dx; dy].

18
Символьний рядок
Конструктор повинен дозволяти створювати символьний рядок довільного розміру та при необхідності ініціалізувати його. Визначити конструктор копій. Перевантажити операції присвоєння =, порівняння ==, вилучення з рідка заданого символу -, виводу << і вводу >>.

19
Прямокутна матриця nxm
Конструктор повинен створювати матрицю заданої розмірності з можливістю ініціалізації. Визначити конструктор копій. Перевантажити операції +, =, ==, *, виводу << і вводу >> для об'єктів класу.

20
Дата визначена в форматі дд.мм.рр.
Конструктор повинен дозволяти створювати об’єкти з ініціалізацією. Реалізувати операції =, ==, <, >, -, +=<int>, виводу << і вводу >> для об'єктів класу.

21
Поліном виду

Конструктор повинен дозволяти створювати поліном з ініціалізацією. Реалізувати операції =, ==, <, >, -, *=<int>, виводу << і вводу >> для об'єктів класу.

22
Множина цілих чисел
Конструктор повинен дозволяти створювати множину з ініціалізацією. Реалізувати операції ==, &&(перетин множин), ||(об'єднання множин), +=(внесення нового елемента), -=(вилучення заданого елемента), виводу << і вводу >> для об'єктів класу.

23
Раціональний дріб виду
Конструктор повинен дозволяти створювати множину з ініціалізацією. Реалізувати операції ==, +, -, *, /, виводу << і вводу >> для об'єктів класу.

24
Комплексне число, задане своїм модулем A і кутом ??

Конструктор повинен дозволяти створювати об'єкти з ініціалізацією і без ініціалізації. Перевантажити операції +, -, *, ==, >, <, виводу << і вводу >> для об'єктів класу.

25
Час визначений в форматі год.хв.сек.
Конструктор повинен дозволяти створювати об’єкти з ініціалізацією. Реалізувати операції =, ==, <, >, -, +=<int>, виводу << і вводу >> для об'єктів класу.


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