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

Отчёт_по ПР1

.docx
Скачиваний:
6
Добавлен:
20.06.2023
Размер:
1.03 Mб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра информационных систем

отчет

по практической работе №1

по дисциплине «Объектно-ориентированное программирование»

Студент гр. 9373

Заболотников М.Е.

Студентка гр. 9373

Петрова С.В.

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

Егоров С.С.

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

2022

Постановка задачи.

Создать консольное приложение согласно представленной диаграмме классов, предназначенное для вычисления корней полинома второй степени на множестве целых чисел.

Выполнение работы.

В ходе выполнения практической работы был создан класс TApplication. В данном классе были созданы три метода:

  1. TApplication() – конструктор класса;

  2. exec() – это исполнительный метод, который не принимает в себя аргументы, а вызывает метод menu(); реализует выбор пункта и запускает нужные алгоритмы;

  3. menu() – метод, реализующий вывод пункты меню и возвращающий код выбранного пункта.

Все методы, кроме menu(), имеют открытую область видимости – menu() находится в закрытой области. Класс TApplication нужен для запуска приложения.

Также был создан модуль TPolinom. В нём хранятся все действия, которые необходимо произвести с полиномом. В классе TPolinom содержатся следующие атрибуты и методы:

  1. printMode – имеет пользовательский тип данных EPrintMode, созданный в рамках этого же класса. Является индикатором для вывода полинома в классическом или каноническом виде;

  2. a, b, c – коэффициенты полинома (имеют пользовательский тип данных number);

  3. r1, r2 – корни полинома второй степени (имеют пользовательский тип данных number).

Все атрибуты данного класса имеют закрытую область видимости.

Методы класса (имеют открытую область видимости):

  1. TPolinom(number, number, number) – конструктор класса, принимающий в себя три коэффициента полинома;

  2. operator<<(ostream&, TPolinom&) – дружественная функция, реализующая перегрузку оператора вывода. Этот метод необходим для корректного вывода полинома;

  3. value(number) – принимает в себя значение аргумента типа number в полином и возвращает типа number.

  4. setPrintMode(EPrintMode) – принимает аргумент типа EPrintMode и устанавливает вид вывода полинома;

  5. roots() – проверяет наличие корней типа number (в данной задаче – целых), находит их (если они есть) и записывает их в свойства r1 и r2. Данный метод возвращает true, если удовлетворяющие условиям корни найдены, и false – в остальных случаях:

  6. printRoots() – выводит значения корней.

В главном исполняющем файле main.cpp создаётся объект класса TApplication и вызывается функция exec().

Все числа, задающиеся в классе TPolinom, имеют тип данных number. Это нужно для того, чтобы программа была универсальной и можно было её подстраивать под любые условия задачи, меняя лишь сам тип number, но при этом не трогая класс TPolinom.

Ниже представлена диаграмма классов (см. рис. 1):

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

На диаграмме представлены все классы и их атрибуты и методы.

Тесты работы программы.

Для проверки исправности программы возьмём несколько примеров.

Рассмотрим полином .

Находя корни этого полинома, мы должны получить и . Если записать полином в каноническом виде, ожидаем получить следующего вида выражение: . Далее подставим значение аргумента , должны получить . Результаты работы программы представим ниже.

Рисунок 2

Рисунок 3

Рисунок 4

Рисунок 5

На рис. 2 демонстрация ввода коэффициентов полинома (по умолчанию, , и ) и вывод полинома в классической форме. На рис. 3 показан вывод полинома в канонической форме, на рис. 4 – вывод корней, и на рис. 5 – значение полинома при .

Далее рассмотрим ещё несколько примеров.

Полином , , :

Ожидаемый результат:

Классическая форма

Каноническая форма

Корни

Не существует

Нет

37

Результат работы программы:

Полином , , :

Ожидаемый результат:

Классическая форма

Каноническая форма

Корни

Не существует

Есть, но они не удовлетворяют условию целочисленности

33

Результат работы программы:

Полином , , :

Ожидаемый результат:

Классическая форма

Каноническая форма

Корни

4

Результат работы программы:

Полином , , :

Ожидаемый результат:

Классическая форма

Каноническая форма

Корни

16

Результат работы программы:

Полином , , :

Ожидаемый результат:

Классическая форма

Каноническая форма

Корни

-60

Результат работы программы:

Полином , , :

Ожидаемый результат:

Классическая форма

Каноническая форма

Корни

-25

Результат работы программы:

Выводы.

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