Добавил:
https://vk.com/club199197084 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные Егоров / 0361_ЦукановаПА_№1

.pdf
Скачиваний:
17
Добавлен:
03.02.2024
Размер:
273.23 Кб
Скачать

МИНОБРНАУКИ РОССИИ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА) Кафедра информационной безопасности

ПРАКТИЧЕСКАЯ РАБОТА №1 по дисциплине «Объектно-ориентированное программирование»

ТЕМА: МАТРИЦА, ЗАДАННАЯ НА МНОЖЕСТВЕ ВЕЩЕСТВЕННЫХ ЧИСЕЛ

 

 

 

Семенова Е.А.

Студенты гр. 0361

 

Цуканова П.А.

Преподаватель

 

 

Егоров С.С.

Санкт-Петербург

2023

ЗАДАНИЕ НА ПРАКТИЧЕСКУЮ РАБОТУ

Студенты Цуканова П.А., Семенова Е.А.

Группа 0361

Исходные данные: Создать консольное приложение согласно представленной диаграмме классов, предназначенное для заданных вычислений над квадратной матрицей, заданной на множестве вещественных чисел. Для этого необходимо специфицировать пользовательские классы "Консольное приложение" и "Квадратная матрица", т.е. задать атрибуты и методы указанных классов, а также распределить их по существующим областям видимости. Спецификация классов и реализация их методов должна обеспечивать реализацию отношений, указанных на диаграмме классов. В отчете представить аргументированное обоснование своего выбора.

СПЕЦИФИКАЦИИ КЛАССОВ

1. Класс Application.

Атрибуты класса:

1. matrix, тип атрибута Matrix. Область видимости private.

Поле, которая хранит текущую матрицу.

Методы класса:

1. Application(). Область видимости public. Конструктор класса, инициирует создание матрицы по умолчанию.

2. showMenu(). Область видимости public. Выводит в консоль меню команд приложения.

3.inputMatrix(). Область видимости private. Инициирует ввод в консоль значений матрицы.

4.calculateDeterminant(). Область видимости private.

Инициирует расчет определителя матрицы и вывод результатов расчета.

5. transposeMatrix(). Область видимости private. Инициирует формирование транспонированной матрицы и ее вывод на экран.

6. calculateRank(). Область видимости private. Инициирует расчет ранга матрицы и его вывод на экран.

7. printMatrix(). Область видимости private. Инициирует вывод матрицы в консоль.

2. Класс Matrix.

Атрибуты класса:

1. size, тип атрибута int. Область видимости private. Поле,

которая хранит значение размера массива.

2. elements, тип атрибута number**. Область видимости private. Поле, хранит в себе элементы матрицы.

Методы класса:

1. Matrix(). Область видимости public. Конструктор класса,

инициирует создание матрицы по умолчанию.

2. Matrix(int n). Область видимости public. Конструктор класса, инициализирует матрицу заданного размера n.

3. ~Matrix(). Область видимости public. Деструктор класса,

освобождает выделенную динамическую память.

4. input(). Область видимости public. Производит ввод в

консоль значений элементов матрицы.

5. print(). Область видимости public. Производит вывод элементов матрицы.

6. determinant(). Область видимости public. Производит расчет определителя матрицы.

7. rank(). Область видимости public. Производит расчет ранга матрицы.

8. transpose(). Область видимости public. Производит транспонирование матрицы.

9.operator=(const Matrix &other). Область видимости

public. Перегрузка оператора присваивания.

ДИАГРАММА КЛАССОВ

На рисунке 1 представлена диаграмма классов, дополненная атрибутами и методами.

Рисунок 1 – Диаграмма классов.

ОПИСАНИЕ КОНТРОЛЬНОГО ПРИМЕРА С ИСХОДНЫМИ И

ОЖИДАЕМЫМИ (РАСЧЕТНЫМИ) ДАННЫМИ

Контрольный пример:

8

3

4

= ( 1

2

0) – исходная матрица.

10

8

2

8

3

4

det = | 1

2

0| = 8 · 2 · 2 + 3 · 0 · 10 + 4 · 1 · 8 − 4 · 2 · 10 −

10

8

2

− 8 · 0 · 8 − 3 · 1 · 2 = 32 + 0 + 32 − 80 − 0 − 6 = −22

8

1

10

 

2

8 )

= (3

4

0

2

Ранг матрицы:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

1

2,1(−1)

1

 

3

 

 

1

 

 

 

 

 

 

8

3

4

 

1

(

1

)

 

1

8

 

2

 

1(

8

 

)

 

 

 

 

 

 

 

 

 

 

(−10)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

2

 

 

 

 

 

13

 

 

1

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

3,1

 

 

 

0

 

 

13

( 1

2 0) ~ (

1

2 0)

 

~

 

 

 

 

 

 

~

 

 

 

 

8

 

2

 

10

8

2

 

 

 

 

 

 

 

 

10

8

2

 

 

 

 

 

(0

 

17

−3)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

1

3

 

 

 

1

 

 

 

 

 

 

 

 

 

1

 

3

 

1

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

8

 

 

 

2

 

 

 

 

 

 

17

 

 

 

8

 

2

 

 

 

 

 

 

13

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

1(

 

)

 

 

 

 

 

 

4

 

3,2(−

4 )

 

 

 

 

 

 

4

 

3(−22)

 

 

 

 

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

0

1

 

 

13

 

 

 

 

 

 

0

 

1

 

13

 

 

 

 

 

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

17

−3

 

 

 

 

 

 

 

 

0

 

0

 

22

 

 

 

 

 

 

(0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

4

 

 

)

 

 

 

 

(

 

 

13)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Следовательно, ( ) = 3.

1

2

4 13

1 )

СКРИНШОТЫ РАБОТЫ ПРОГРАММЫ НА КОНТРОЛЬНЫХ

ПРИМЕРАХ

После запуска программы на экране появляется консоль, в которую выводится меню, что показано на рисунке 2.

Рисунок 2 – Запуск программы и начальное меню Необходимо ввести значения элементов матрицы. Для этого нужно

ввести «1» и нажать клавишу Enter. Программа предложит ввести размер матрицы и её элементы. На рисунке 3 показан ввод элементов матрицы из контрольного примера.

Рисунок 3 – Ввод матрицы из контрольного примера

Чтобы вывести матрицы на экран, введём «5» и нажмём клавишу Enter.

В консоли появится матрица и введённые на предыдущем шаге элементы

(рисунок 4).

Рисунок 4 – Вывод матрицы на экран Вычислим определитель матрицы. Для этого введём «2» и нажмём

клавишу Enter. На рисунке 5 показаны результаты работы программы.

Рисунок 5 – Вычисление определителя матрицы

Теперь транспонируем матрицу. Чтобы это сделать, необходимо ввести

«3» и нажать клавишу Enter. На экране появится транспонированная матрица

(рисунок 6).

Рисунок 6 – Вывод транспонированной матрицы на экран Чтобы найти ранг матрицы, необходимо ввести «4» и нажать клавишу

Enter. На рисунке 7 показан результат работы программы.

Рисунок 7 – Вычисление ранга матрицы

Наконец, чтобы выйти из программы, нужно ввести «6» и нажать клавишу Enter. Далее можно нажать на любую кнопку, и программа автоматически закроется. Меню выхода из программы показано на рисунке 8.

Рисунок 8 – Меню выхода из программы

Соседние файлы в папке Лабораторные Егоров