You are on page 1of 5

Лабораторна 

робота № 1
Тема: Структури. Зовнішні функції і функції-члени структури
 

Завдання

Структурою-парою прийнято називати структуру, яка складається з двох полів з іменами first і second.

Необхідно реалізувати власний тип даних за допомогою цієї структури [11].

Створити кілька об’єктів (ob1, ob2, ob3,…) такого структурного типу.

В усіх завданнях реалізувати:

уведення структурної змінної (функція input());

функцію check(), яка повинна забезпечувати перевірку введених функцією input() значень на коректність;

виведення на екран інформації про об'єкт (функція output());

продемонструвати результати роботи програми, викликавши всі функції з основної функції main().

При введенні помилкових значень параметрів слід вивести відповідне повідомлення і знов запропонувати ввест
и потрібні значення.

 Глобальні змінні не використовувати.

Програму реалізувати у двох варіантах:

1)      всі необхідні функції описати як звичайні зовнішні функції засобами мови С (якщо в умові написано


"метод", то під методом розуміється звичайна  функція);

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().

Усі завдання повинні бути реалізовані двома способами (завдання складається з 2 частин):


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

2)      тип даних задається класом. Член-даних класу – одна приватна змінна структурного


типу, який описаний у п.1, члени-
функції класу – відкриті неоператорні функції init(), input(), output(), toPChar() і функції доступу
до приватної змінної setStruct(), getStruct() або до окремих полів  приватної змінної setVar(), getVar().

Функції, зазначені в конкретному варіанті, визначити як звичайні сторонні функції (доступ для


до приватної частини класу в цих функціях відбувається за допомогою функцій доступу). 

Визначити тип TPoint для роботи з точками на площині. Координати точки


– декартові. Обов’язково повинно бути реалізовано: переміщення точки
по осі X, переміщення по осі Y, визначення відстані до початку
координат, відстані між двома точками, перетворення в полярні координати, порівняння на збіг та несп
івпадання двох точок.

Лабораторна робота № 4
Тема: Створення класів

Завдання

Створити проект з 3 файлів:

main.cpp - функція драйвер, яка маніпулює об'єктами класу і тестує всі розроблені функції

MyClass.h - інтерфейсна частина класу

MyClass.cpp - реалізація класу

Тут MyClass означає ім'я Вашого класу. 

У файлі MyClass.h використати команди препроцесора, наприклад:

#ifndef  MyClass_h

#define  MyClass_h

... 

//  інтерфейсна  частина  класу 


class  MyClass{

...

}';

#endif

У файлах main.cpp,
MyClass.cpp підключити заголовочний файл, використавши команду препроцесора, наприклад:

#include "MyClass.h"

У кожному варіанті розробити вказаний клас [17]
і протестувати його, для чого в основній програмі створити необхідну кількість об’єктів, використовуюч
и які, продемонструвати всі розроблені оператори і функції. Частину  операторів і функцій зробити дру
жніми, а частину – членами класу. Використати статичні члени класу.

Програму робити поступово і здавати  у
три етапи, розробивши функції у такій послідовності (другий і третій етапи можна міняти місцями):

1)      конструктори, деструктор, оператор присвоєння, функції введення/виведення об’єктів;

2)      неоператорні функції-члени (у тому числі – статичні) і функції-друзі класу;

3)      перезавантажені оператори.

Визначити клас: ціле число. Створити конструктор і деструктор.

Визначити операції:

"++" - сума цифр числа;

"--" – знищення останніх цифр числа, якщо вони дорівнюють нулю;

"!" - обертання числа (цифри – в оберненому порядку);

"&" – ділення чисел (результат – дійсне число).

Створити функції:

перевірки, чи є число простим;

знаходження простих дільників числа;

розклад числа на прості множники;

знаходження найменшого спільного кратного двох чисел;

друку числа в різних системах числення (від двійкової до десяткової).
Лабораторна робота № 6
Тема: Абстрактні класи

Завдання

Побудувати ієрархію класів [11]. Корінь ієрархії – абстрактний клас з вказаними в умові задачі віртуальн
ими  функціями. Утворити похідні реальні класи (з конструкторами),
в яких здійснити реалізацію всіх чисто віртуальних функцій пращура. Написати функції введення/вивед
ення. Самостійно визначити, які члени-дані необхідні та які з них визначити в базовому класі, а які –
в похідних. Самостійно визначити будь-яку поліморфну функцію для маніпулювання різнотиповими об’
єктами створеної ієрархії.

Створити абстрактний базовий клас TPair з віртуальними арифметичними операціями +=, -=,
*=. Створити похідні класи TComplex (комплексне число) і TRational(раціональний дріб)
з власною реалізацією арифметичних операцій.

You might also like