Добавил:
інстаграм _roman.kob, курсові роботи з тєрєхова в.в. для КІ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораьорна 2

.docx
Скачиваний:
5
Добавлен:
31.05.2020
Размер:
545 Кб
Скачать

Міністерство освіти і науки України

Технічний коледж

Національного університету “Львівська політехніка”

Кафедра інформаційних технологій

Звіт

до лабораторної роботи №2

Робота з динамічною памяттю

Виконав:

Студент групи: 31-КІ

Мартинюк Р.

Прийняла:

Кинаш Ю. Є.

Львів – 2020

Мета роботи: ознайомитись з можливостями мови C++ для роботи з динамічною пам’ятю та навчитись використовувати їх при роботі з класами та об’єктами.

Послідовність роботи:

1. Ознайомитись з особливостями виділення та звільнення динамічної пам’яті на С++, операціями new та delete .

2. Модифікувати текст програми з ЛР № 1, описати поля даних класу як змінні у динамічній пам’яті.

3. Внести відповідні зміни у конструктори, деструктор, методи доступу та інші функції класу.

4. Реалізувати конструктор копіювання – для створення глибокої копії об’єкта, розглянути на прикладі конструктора копіювання параметри-посилання та константні параметри.

5. Продемонструвати використання вказівника this для доступу до полів та методів класу.

6. Створити об’єкти розробленого класу в динамічній пам’яті.

7. Вивести на екран повідомлення про виконання конструкторів та деструкторів.

8. Визначити, які можливості виділення пам’яті для великих об’ємів даних у масивах-полях класу надає використання динамічної пам’яті.

Індивідуальне завдання:

Створити клас – конус. У закритій частині описати поля – радіус основи та висоту. Визначити конструктор, деструктор, зміни значень полів і отримання їхніх значень, виведення полів класу, обчислення об’єму та площі поверхні конуса. Функції зміни значень полів класу повинні перевіряти коректність параметрів, що задаються.

Текст програми:

#include <iostream>

#include <cmath>

using namespace std;

const int pi = 3.14159265;

class Cone {

int *x, *y, *z;

int *radius;

int *height;

public:

Cone() {x = new int(0);y = new int(0);z = new int(0);radius = new int(0);height = new int(0); }

Cone(int r, int h) {

this->x = new int(x); this->y = new int(y); this->z = new int(z);

radius = r;

height = h;

}

Cone(const Cone &obj);

{x = new int(*obj.x); y = new int(*obj.y); z = new int(*obj.z); radius = new int(*obj.radius); height = new int (*obj.height);}

~Cone(){delete x, delete y, delete z, delete radius, delete height}

void setCoordinate(int a, int b, int c) { x = a; y = b; z = c; }

void setRadius(int r) { int = r; }

void setHeight(int h) { int = h; }

int getRadius() { return radius; }

int getHeight() { return height; }

int area() {

double l = sqrt(height*height + radius*radius);

return pi*radius*(radius+l);

}

int volume() {

return pi*radius*radius*height/3;

}

friend ostream &operator<<(ostream &stream, Cone obj);

};

ostream &operator<<(ostream &stream, Cone obj) {

stream << "(" << obj.x << "; ";

stream << obj.y << "; ";

stream << obj.z << ") ";

stream << "r=" << obj.radius << " ";

stream << "h=" << obj.height << "\n";

}

int main()

{

Cone c1(3, 7);

cout << "Конус : " << c1;

cout << "Площа поверхні: " << c1.area() << "\n";

cout << "Обєм: " << c1.volume() << "\n";

return 0;

}

Контрольний приклад та результати роботи програми:

Висновок: В даній лабораторній роботі знайомився з можливостями мови C++ для роботи з динамічною пам’ятю та навчився використовувати їх при роботі з класами та об’єктами.

Соседние файлы в предмете Объектно ориентированное программирование