
ПР_2
.docxМИНОБРНАУКИ РОССИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)
Кафедра ИС
ОТЧЕТ
по лабораторной работе №2
по дисциплине «Объектно-ориентированное программирование»
Студенты гр.
Преподаватель Егоров С. С.
Санкт-Петербург 2024
Задание на практическую работу
Рисунок 1- Диаграмма классов работы №2
Создать консольное приложение, реализующее функции перечисленные в описании работы №1, но на множестве комплексных чисел.
Приложение должно включать основной модуль, модуль «application», модуль «matrix» и модуль «complex».Приложение должно включать основной модуль (функция main), модуль «application» и модуль «matrix».
Для этого в проект лабораторной работы №1 следует добавить модуль с собственным описанием и реализацией класса комплексных чисел TComplex. Класс TComplex должен быть встроен в проект согласно диаграмме классов на рис. 2. При этом основной модуль, модуль «application» и модуль «matrix» не должны изменяться.
В классе TComplex следует определить только те члены класса и спецификации, которые необходимы для совместимости модулей проекта и реализации отношений, приведенных в ДК объектной модели.
Реализовать и отладить программу, удовлетворяющую сформулированным требованиям и заявленной цели. Разработать контрольные примеры и оттестировать на них программу. Оформить отчет, сделать выводы по работе.
Выполнение работы
Спецификация классов
Класс Matrix – класс, задающий по умолчанию единичную матрицу 3х3. Атрибуты класса:
data: тип array[array[number]], приватный, содержит числовые данные матрицы.
Методы класса:
getitem: публичный метод для доступа к элементам матрицы через оператор []. Возвращает строку матрицы по индексу.
Является «магическим» методом python, перегружающим оператор [].
get_number_of_rows: публичный метод, возвращающий число строк в матрице.
get_number_of_columns: публичный метод, возвращающий число столбцов в матрице.
get_minor: приватный вспомогательный метод для получения k- ого минора матрицы, принимает на вход число k, возвращает array[array[number]].
det_count: приватный рекурсивный метод для вычисления определителя матрицы, на вход получает array[array[number]], возвращает number.
det: публичный метод для нахождения определителя матрицы, возвращает number.
print: публичный метод для вывода матрицы на печать, ничего не принимает и не возвращает.
rank: метод для расчета ранга матрицы, возвращает ранг матрицы (integer).
transpose: метод для транспонирования матрицы, ничего не принимает и не возвращает, изменяет атрибут data .
set_data: метод для ввода новых данных в матрицу, на вход принимает array[array[number]], ничего не возвращает, изменяет атрибут data
Класс App - класс, отвечающий за работу пользователя с матрицей и отображение матрицы.
Методы класса:
show_command_menu: приватный метод, выводит меню команд на экран.
execute: публичный метод, запускает выполнение приложения. Создает объект матрицы, отображает меню команд, принимает выбор пользователя и выполняет соответствующие действия в цикле, пока пользователь не выберет выход из приложения.
Класс TComplex – класс, предназначенный для работы с комплексными числами.
str: возвращает строковое представление комплексного числа.
abs: возвращает модуль комплексного числа.
eq: проверяет равенство двух комплексных чисел.
add: выполняет сложение двух комплексных чисел.
mul: выполняет умножение двух комплексных чисел.
sub: выполняет вычитание двух комплексных чисел.
ne: проверяет неравенство двух комплексных чисел.
truediv: выполняет деление двух комплексных чисел.
Диаграмма классов
Рисунок 2 - диаграмма классов
Описание контрольных примеров с исходными и ожидаемыми данными
Пример 1. Определитель и ранг матрицы
Исходные данные:
Ожидаемые данные:
Ранг = 2, определитель = -4i
Рисунок 3 – пример работы 1
Пример 2. Транспонирование матрицы
Исходные данные:
Ожидаемые данные:
Рисунок 4 – пример работы 2
Вывод
В ходе данной практической работы было создано консольное приложение для работы с множеством комплексных чисел, используя методы, описанные в работе №1. Для этого был специфицирован класс TComplex к уже существующим App и Matrix, реализованы их методы.
Приложение позволяет пользователю вводить матрицу, вычислять определитель, транспонировать матрицу, определить ранг матрицы и выводить текущую матрицу на экран. Пользователь может выбирать действия из меню команд, пока не решит завершить программу. Те же действия можно производить для комплексных чисел.
Была построена диаграмма классов, отражающая связи между классами App и Matrix, а также их методами и атрибутами. Диаграмма классов помогает лучше понять структуру приложения и взаимодействие между его компонентами.