You are on page 1of 7

Міністерство освіти і науки України Національний університет «Львівська

політехніка» Інститут комп’ютерних наук та інформаційних технологій


Кафедра автоматизованих систем управління

Звіт
до лабораторної роботи № 1
з дисципліни
Об’єктно-орієнтоване програмування
на тему:
“Класи та об’єкти C++ ”

Виконав: студент ОІ-16

Боднар Данило

Прийняла:

доцент каф. АСУ

Ткачук К. I.
Львів – 2023
Лабораторна робота №1

Тема роботи: Класи та об’єкти C++

Мета роботи: ознайомитись з основними компонентами інтегрованого


середовища програмування мовою С++; навчитись створювати,
відлагоджувати і виконувати програмні проекти; вивчити оголошення
класу та об’єктів, рівні захисту елементів класу.

Завдання лабораторної роботи IIв.

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

1. Ознайомитись зі складом та режимами роботи обраного інтегрованого


середовища.

2. Ознайомитись зі структурою програми мовою C++.

3. Ознайомитися з особливостями оголошення класу та його об’єктів у


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

4. Відповідно до завдання написати програму мовою C++, описати


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

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

Створити клас – матриця з полями у закритій частині: двовимірний масив цілих


чисел, кількість рядків, кількість стовпців. Визначити конструктор, деструктор,
функції виведення матриці, отримання значення елемента за індексами [і][j],
множення матриці на число, додавання, віднімання та множення двох заданих
матриць (перевірити чи ці операції є можливими).
Текст програми:
#include <iostream>

using namespace std;

class Matrix
{
private:
int rows;
int columns;
int **twoDimensionalArray;

public:
Matrix(int r, int c)
{
rows = r;
columns = c;
twoDimensionalArray = new int *[rows];

for (int i = 0; i < rows; i++)


{
twoDimensionalArray[i] = new int[columns];

for (int j = 0; j < columns; j++)


{
twoDimensionalArray[i][j] = rand() % 15;
}
}
}
void printMatrix()
{
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns; j++)
{
cout << twoDimensionalArray[i][j] << " ";
}
cout << endl;
}
}
int getElementByIndexes(int row, int column)
{
return twoDimensionalArray[row][column];
}
void multiplyBy(int number)
{
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns; j++)
{
twoDimensionalArray[i][j] *= number;
}
}
}
Matrix operator+(const Matrix &secondMatrix)
{
if (rows != secondMatrix.rows || columns != secondMatrix.columns)
{
throw invalid_argument("Matrices must be of the same size.");
}

Matrix resultMatrix(rows, columns);

for (int i = 0; i < rows; i++)


{
for (int j = 0; j < columns; j++)
{
resultMatrix.twoDimensionalArray[i][j] = twoDimensionalArray[i][j] +
secondMatrix.twoDimensionalArray[i][j];
}
}

return resultMatrix;
}
Matrix operator-(const Matrix &secondMatrix)
{
if (rows != secondMatrix.rows || columns != secondMatrix.columns)
{
throw invalid_argument("Matrices must be of the same size.");
}

Matrix resultMatrix(rows, columns);

for (int i = 0; i < rows; i++)


{
for (int j = 0; j < columns; j++)
{
resultMatrix.twoDimensionalArray[i][j] = twoDimensionalArray[i][j] -
secondMatrix.twoDimensionalArray[i][j];
}
}

return resultMatrix;
}
Matrix operator*(const Matrix &secondMatrix)
{
if (columns != secondMatrix.rows)
{
throw invalid_argument("Matrices must be of the same size.");
}

Matrix resultMatrix(rows, secondMatrix.columns);

for (int i = 0; i < rows; i++) // 2


{
for (int j = 0; j < secondMatrix.columns; j++) // 4
{
for (int k = 0; k < columns; k++)
{
resultMatrix.twoDimensionalArray[i][j] += twoDimensionalArray[i][k] *
secondMatrix.twoDimensionalArray[k][j];
}
}
}

return resultMatrix;
}
~Matrix()
{
for (int i = 0; i < rows; i++)
{
delete[] twoDimensionalArray[i];
}

delete[] twoDimensionalArray;
}
};

int main()
{
Matrix matrix1(2, 3), matrix2(3, 4);
cout << "Перша матриця" << endl;
matrix1.printMatrix();
cout << "Друга матриця" << endl;
matrix2.printMatrix();

cout << matrix1.getElementByIndexes(0, 1) << endl;

return 0;
}

Результат роботи:
Висновок

Ознайомився з основними компонентами

інтегрованого середовища програмування мовою С++; навчився


створювати, відлагоджувати і виконувати програмні проекти; вивчив
оголошення класу та об’єктів, рівні захисту елементів класу.

You might also like