Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЕКЗАМЕНАЦІЙНІ ПРАКТИЧНІ ЗАВДАННЯ ООП.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
126.46 Кб
Скачать

ЕКЗАМЕНАЦІЙНІ ПРАКТИЧНІ ЗАВДАННЯ

з предмету «Об’єктно-орієнтоване програмування»

ПРАКТИЧНЕ ЗАВДАННЯ №1

Дан класс Rectangle, який містить два закритих члена ( дві сторони) та функції знаходження периметра, площі .

Створити конструктор без параметрів, як буду ініціалізувати закриті члені-дані нулями, конструктор ініціалізації, конструктор копіювання, деструктор.

Створити два об’єкта, які будуть ініціалізуватись відповідними конструкторами.

Створити третій об’єкт , який буде створюватись на основі другого об’єкту.

Перевантажити: бінарний оператор + , оператор виведення даних із потоку ( << ),

ПРАКТИЧНЕ ЗАВДАННЯ №2

Дан клас Date. Створити два конструктора У першому випадку дані задаються у вигляді рядка символів, в іншому - у вигляді трьох цілих.

Класс містить функції, виведення даних на екран,

Створити два об’єкта, які будуть ініціалізуватись відповідними конструкторами.

Перевантажити:

  • бінарний оператор + для об’єктів з трьома цілими, який буде сумувати дати

  • оператор виведення даних із потоку ( << ).

ПРАКТИЧНЕ ЗАВДАННЯ № 3

Створити клас – Data з полями: day (1 - 31), month (1 - 12), year (ціле число). Конструктор ініціалізується даними введеними з клавіатури.

Клас має функції-члени повертання дня, місяця і року, а також дві функції-члени друку: друк по шаблону: "5 червня 2012 року" і "05.06.2012".

Функції-члени установки полів класу повинні перевіряти коректність параметрів, що задаються

Перевантажити:

  • оператор інкременту ++, який буде збільшувати дату ( з перевіркою коректності дати)

  • оператор введення даних у потоку ( >>) ( введення довільного дня, місяця і року)

ПРАКТИЧНЕ ЗАВДАННЯ № 4

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

Створити конструктори ініціалізації, копіювання, деструктор

Створити два об’єкта, які будуть ініціалізуватись відповідними конструкторами.

Перевантажити:

  • оператор виведення даних із потоку ( << ).

ПРАКТИЧНЕ ЗАВДАННЯ № 5

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

Перевантажити:

  • бінарний оператор + , який буде збільшувати кожен елемент на 2

  • оператор виведення даних із потоку ( << ).

функцію виведення елементів масиву.

Створити два об’єкта Ar1 , Ar2 даного класу. Перший об’єкт ініціалізується конструктором без параметрів, другий – конструктором ініціалізації.

Створити об’єкт Ar3 на основі Ar2 об’єкта даного класу. Для об’єктів Ar2 та Ar3 застосуавати бінарний оператор+

Вивести всі об’єкти на екран з коментарями

ПРАКТИЧНЕ ЗАВДАННЯ № 6

Створити клас "Vector", що містить покажчик на int, число елементів і змінну стану. Визначити конструктор без параметрів, конструктор з одним параметром, конструктор із двома параметрами. Конструктор без параметрів виділяє місце для одного елемента та ініціалізує його в нуль. Конструктор з одним параметром (розмір вектора) виділяє місце та ініціалізує нулями, конструктор із двома параметрами виділяє місце (перший аргумент) та ініціалізує другим аргументом.

Деструктор звільняє пам'ять. Визначити функцію, яка присвоює елементу масиву деяке значення , функцію яка повертає деякий елемент масиву. У змінну стану встановлювати код помилки, якщо не вистачає пам'яті або відбувається вихід за межі масиву.

Перевантажити:

  • оператор виведення даних із потоку ( << ).

  • оператор декременту -- ( префіксна та постфіксна форми). , який буде зменшувати кожен елемент масиву

ПРАКТИЧНЕ ЗАВДАННЯ № 7

Створити клас DinMas (Динамічний масив), що містить покажчик на int, число елементів . У класі передбачити можливість добавлення нових елементів масиву при перевищенні розмірності масиву.

Клас повинен містити конструктор без параметрів ( ініціалізує масив із п’яти елементів), конструктор ініціалізації ( розмірність задається з клавіатури), конструктор копіювання, деструктор.

  • Також у класі визначити функцію, яка сортовує масив по-зростанню;

  • функцію, яка повертає кількість від’ємних елементів;

Перевантажити:

  • оператор виведення даних із потоку ( << ).

  • оператор інкременту ++ ( префіксна та постфіксна форми). , який буде збішувати кожен елемент масиву

Створити два об’єкта Ar1 , Ar2 даного класу. Перший об’єкт ініціалізується конструктором без параметрів, другий – конструктором ініціалізації. Вивести два об’єкта на екран з коментарями.

Знайти кількість від’ємних елементі, відсортовати масив по-зростанню.

Створити об’єкт Ar3 на основі об’єкта Ar2 даного класу.

Результати вивести на екран, застосовуючі оператор виведення даних із потоку ( << ).

ПРАКТИЧНЕ ЗАВДАННЯ № 8

Дан клас ArrayArray (Динамічний двовимірний масив ), що містить подвійний покажчик на int, число рядків , число стовбців та змінну стану, у яку встановлюється код помилки, якщо не вистачає пам'яті або відбувається вихід за межі масиву.

Клас повинен містити конструктор ініціалізації ( розмірність задається з клавіатури), конструктор копіювання, деструктор.

Також у класі визначити:

  • функцію, яка утворює одновимірний масив із елементів головної діагоналі ;

  • функцію, яка повертає суму додатніх елементів, які розташовані під головною діагоналю;

Перевантажити:

  • оператор виведення даних із потоку ( << ).

  • оператор інкременту ++ ( префіксна та постфіксна форми). , який буде збішувати кожен елемент масиву

Створити два об’єкта ArAr1 , ArAr2 даного класу. Перший об’єкт ініціалізується конструктором без параметрів, другий – конструктором ініціалізації. Вивести два об’єкта на екран з коментарями ( де який масив) , застосовуючі оператор виведення даних із потоку ( << ).

Створити об’єкт ArAr3 на основі об’єкта ArAr2 даного класу. Вивести об’єкт на екран.

Вивести на екран одновимірний масив елементами якого, є елементи головної діагоналі об’єкта ArAr 1, суму додатніх елементів, які розташовані під головною діагоналю даного об’єкта.

Практичне завдання № 9

Створити абстрактний тип даних MasMas (Динамічний двовимірний масив ). що містить подвійний покажчик на int, число рядків , число стовбців У класі передбачити можливість добавлення нових елементів масиву при перевищенні розмірності масиву.

Клас повинен містити конструктор без параметрів ( ініціалізує масив нулями конструктор ініціалізації ( розмірність задається з клавіатури), конструктор копіювання, деструктор.

Також у класі визначити:

  • функцію, яка повертає добуток від’ємних елементів, які розташовані над головною діагоналю;

  • функцію, яка сортовує масив по-зменьшенню;

Створити два об’єкта ArAr1 , ArAr2 даного класу. Перший об’єкт ініціалізується конструктором без параметрів, другий – конструктором ініціалізації. Вивести два об’єкта на екран з коментарями ( де який масив)

Створити об’єкт ArAr3 на основі об’єкта ArAr2 даного класу. Вивести об’єкт на екран.

Вивести на екран:

  • добуток від’ємних елементів, які розташовані над головною діагоналю об’єкта ArAr3 ;

  • відсортований об’єкт ArAr1 даного класу по-зростанню;

  • відсортований об’єкт ArAr2 даного класу по-зменьшенню;

Перевантажити:

  • оператор виведення даних із потоку ( << ).

  • бінарний оператор + , який буде сумувати елемент двох масивів однакової розмірності.

ПРАКТИЧНЕ ЗАВДАННЯ № 10

Дан наступний клас. class date { char date [9]; // дата зберігається у вигляді рядка: mm / dd / yy public: // Додайте

конструктор ініціалізації; функцію перевантаження оператора + користувальницькі дружні функції введення і виведення функція виведення інформації

Створіть для нього конструктор ініціалізації, функцію перевантаження оператора +, користувальницькі дружні функції введення і виведення.

Створити два об'єкти даного класу, використовуючи дружні функції введення .Вивести їх на екран, використовуючи дружню функціїю виведення Створити об'єкт d3 даного класа складання двох об'єктів d1 d2. Вивести на екран d3

Практичне завдання № 11

Створіть клас Point, який має два закритих члена класу(координати). Соответсвенно написати конструктор ініціалізації, копіювання, функції перевантаження оператора «+», «/». Також додати дружню функцію перевантаження оператора >> дружню функцію перевантаження оператора << Створити об'єкт р1 даного класа. На основі його створити об'єкт р2. Вивести на екран ці два об'єкти, використовуючи дружні функції введення і виведення Створити об'єкт р3 даного класа складання двох об'єктів р1 і р2. Вивести на екран d3 Створити об'єкт р4 даного класа ділення двох об'єктів р3 на р2. Вивести на екран d4

ПРАКТИЧНЕ ЗАВДАННЯ № 12

Cтворити класи саr (легкова машина) і truck (вантажівка), причому обидва містять в закритій змінної швидкість відповідного транспортного засобу. Створити функцию sp_greater() , яка являлась би членом классусаr и дружньою классу truck

ПРАКТИЧНЕ ЗАВДАННЯ № 13

Необхідно перевантажити оператор + щодо класу так, що правий операнд буде об'єктом вбудованого типу, наприклад, цілого, а не об'єктом того класу, членом якого є оператор-функція. Наприклад, у наведеному нижче прикладі оператор + перевантажується так, що додає ціле значення до об'єкта типу coord:

class coord

{

int x, у; / / значення координат

public:

//додайте конструктор ініціалізації; конструктор копіювання функцію перевантаження оператора + дружню функцію виведення інформації

} Створіть для нього конструктор ініціалізації, конструктор копіювання, функцію перевантаження оператора +, дружню функцію виведення. Створити об'єкт d1 даного класа. На основі його створити об'єкт d2. Вивести на екран ці два об'єкти. Створити об'єкт d3 даного класа складання двох об'єктів d1 d2. Вивести на екран d3