Professional Documents
Culture Documents
OOP Basics
OOP Basics
робота № 1
Тема: Структури. Зовнішні функції і функції-члени структури
Завдання
Структурою-парою прийнято називати структуру, яка складається з двох полів з іменами first і second.
Необхідно реалізувати власний тип даних за допомогою цієї структури [11].
В усіх завданнях реалізувати:
уведення структурної змінної (функція input());
виведення на екран інформації про об'єкт (функція output());
продемонструвати результати роботи програми, викликавши всі функції з основної функції main().
При введенні помилкових значень параметрів слід вивести відповідне повідомлення і знов запропонувати ввест
и потрібні значення.
Глобальні змінні не використовувати.
Програму реалізувати у двох варіантах:
2) функції, які оперують одним об’єктом, описати як функції-члени структури (мова С++); тіла функцій оп
исати за
межами структури, використовуючи оператор прив'язки; для введення/виведення інформації використовувати о
б'єкти cin, cout. (якщо в умові написано "метод", то під методом розуміється член-функція).
Зауваження: 1.
для реалізації деяких власних структурних типів може виникнути необхідність у створенні ще одного допоміжн
ого структурного типу, за допомогою якого будуть визначатися поля first і second.
Поле first – дійсне число, координата x точки на площині;
поле second – дійсне число, координата y точки на площині. Реалізувати методи distance()
– відстань від точки до початку координат, distanceTwo(ob1,ob2) – відстань між двома точками.
Лабораторна робота № 2
Тема: Перезавантаження операцій і функцій.
Шаблони функцій
Завдання
Перезавантажити функції для різних типів вхідних даних, або створити шаблони функцій, або перевизн
ачити операції для означених користувачем типів (нові типи задавати у вигляді структур) [17].
Перезавантажити операцію “*” для множення двох комплексних чисел, множення дійсного (float, dou
ble) і комплексного числа, обчислення скалярного добутку двох векторів з елементами числових типів.
Лабораторна робота № 3
Тема: Структури та класи
Завдання
У всіх завданнях описати класовий тип (у першій частині – це структура,
у другій частині – клас з використанням цієї структури). Окрім вказаних у завданні функцій, для об’єкта з
аданого класового типу повинні бути також реалізовані наступні функції [11]:
ініціалізація об’єкта init(). Функція отримує необхідні параметри для заповнення ними об'єкта;
введення об’єкта з клавіатури input(). Функція вводить дані і заповнює ними об'єкт;
виведення об’єкта на екран output(). Функція виводить дані лише про об'єкт;
перетворення об’єкта в рядок toPChar(). Функція повинна повертати результат
типу char*. Результат має представляти об'єкт, підготовлений для виведення на друк.
Підказки по реалізації функції toPChar(): функції itoa() i ftoa() переводять відповідно ціле і дійсне у ряд
ок. Функція sprintf() друкує інформацію у рядок, який задається 1-м аргументом точно так, як функція pr
intf() друкує інформацію на екран. Нединамічний рядок, описаний
у функції, припиняє своє існування за
межами функції. Динамічний рядок створюються у купі і продовжує існувати після завершення викона
ння функції, поки його не буде знищено за допомогою delete().
Лабораторна робота № 4
Тема: Створення класів
Завдання
Створити проект з 3 файлів:
main.cpp - функція драйвер, яка маніпулює об'єктами класу і тестує всі розроблені функції
MyClass.h - інтерфейсна частина класу
MyClass.cpp - реалізація класу
Тут MyClass означає ім'я Вашого класу.
У файлі MyClass.h використати команди препроцесора, наприклад:
#ifndef MyClass_h
#define MyClass_h
...
...
}';
#endif
У файлах main.cpp,
MyClass.cpp підключити заголовочний файл, використавши команду препроцесора, наприклад:
#include "MyClass.h"
У кожному варіанті розробити вказаний клас [17]
і протестувати його, для чого в основній програмі створити необхідну кількість об’єктів, використовуюч
и які, продемонструвати всі розроблені оператори і функції. Частину операторів і функцій зробити дру
жніми, а частину – членами класу. Використати статичні члени класу.
Програму робити поступово і здавати у
три етапи, розробивши функції у такій послідовності (другий і третій етапи можна міняти місцями):
1) конструктори, деструктор, оператор присвоєння, функції введення/виведення об’єктів;
3) перезавантажені оператори.
Визначити клас: ціле число. Створити конструктор і деструктор.
Визначити операції:
Створити функції:
знаходження простих дільників числа;
розклад числа на прості множники;
знаходження найменшого спільного кратного двох чисел;
друку числа в різних системах числення (від двійкової до десяткової).
Лабораторна робота № 6
Тема: Абстрактні класи
Завдання
Побудувати ієрархію класів [11]. Корінь ієрархії – абстрактний клас з вказаними в умові задачі віртуальн
ими функціями. Утворити похідні реальні класи (з конструкторами),
в яких здійснити реалізацію всіх чисто віртуальних функцій пращура. Написати функції введення/вивед
ення. Самостійно визначити, які члени-дані необхідні та які з них визначити в базовому класі, а які –
в похідних. Самостійно визначити будь-яку поліморфну функцію для маніпулювання різнотиповими об’
єктами створеної ієрархії.
Створити абстрактний базовий клас TPair з віртуальними арифметичними операціями +=, -=,
*=. Створити похідні класи TComplex (комплексне число) і TRational(раціональний дріб)
з власною реалізацією арифметичних операцій.