Файл: Методические указания и варианты заданий для выполнения контрольной работы по дисциплине.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 164

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ«ДОНСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ (ДГТУ)»

Кафедра «Математика и информатика»



Методические указания и варианты заданий для выполнения контрольной работы по дисциплине:«Объектно-ориентированное программирование» для студентов заочной формы обучения Направление подготовки 44.03.04 «Профессиональное обучение (по отраслям)», профиль «Информатика и вычислительная техника (Прикладная информатика)»
Ростов-на-Дону
2021
Составитель: доцент, к.т. наук Б.А. Акишин
Номер варианта контрольной работы должен совпадать с последней цифрой в зачетной книжке. Контрольная состоит из теоретического вопроса и практического задания на языке Python 3.ТЕОРЕТИЧЕСКИЕ ВОПРОСЫ

  1. Технология программирования. Этапы развития технологии программирования. Жизненный цикл ПО и этапы его разработки

  2. Принцип модульности и основные понятия объектно-ориентированного программирования.

  3. Понятие классов, объектов. Объявление класса. Принципы ООП. Инкапсуляция. Наследование. Полиморфизм.

  4. Создание классов и объектов в Python. Свойства класса. Декораторы классов.

  5. Инкапсуляция.

  6. Методы классов. Инициализация экземпляров класса. Статические и динамические методы

  7. Проверка типа объекта. Полиморфизм.

  8. Наследование. Иерархия классов. Механизм наследования.

  9. Расширение методов. Использование методов наследников в базовом классе.

  10. Возможности объектно-ориентированного программирования в VBA.
ПРАКТИЧЕСКИЕ ЗАДАНИЯВариант 1Составить класс для описания плоских геометрических фигур: круга, квадрата, прямоугольника. Предусмотреть методы для создания объектов, перемещения на плоскости, изменения размеров и вращения на заданный угол.Записать программу на языке Python 3, демонстрирующую работу с этим классом.
Вариант 2Составить описание класса для представления комплексных чисел. Обеспечить выполнение операций сложения, вычитания и умножения комплексных чисел.Записать программу на языке Python 3, демонстрирующую работу с этим классом.Вариант 3 Составить описание класса для объектов-векторов, задаваемых координатами их концов в трехмерном пространстве. Обеспечить операции сложения и вычитания векторов с получением нового вектора (суммы или разности), вычисления скалярного произведения двух векторов, длины вектора, косинуса угла между векторами.Записать программу на языке Python 3, демонстрирующую работу с этим классом.Вариант 4Составить описание класса прямоугольников со сторонами, параллельными осям координат. Предусмотреть возможность перемещения прямоугольников на плоскости, изменение размеров, построение наименьшего прямоугольника, содержащего два заданных прямоугольника, и прямоугольника, являющегося общей частью (пересечением) двух прямоугольников.Записать программу на языке Python 3, демонстрирующую работу с этим классом.Вариант 5Составить описание класса для определения одномерных массивов целых чисел (векторов). Предусмотреть следующие возможности: обращение к отдельному элементу массива с контролем выхода за пределы массива; выполнение операций поэлементного сложения и вычитания массивов с одинаковыми границами индексов; умножение и деление всех элементов массива на скаляр; вывод на экран элемента массива по заданному индексу. Записать программу на языке Python 3, демонстрирующую работу с этим классом.Вариант 6Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов. Предусмотреть методы, реализующие: вычисление значения многочлена для заданного аргумента; операцию сложения, вычитания и умножения многочленов с получением нового объекта-многочлена; вывод на экран описания многочлена.Записать программу на языке Python 3, демонстрирующую работу с этим классомВариант 7Составить описание класса, обеспечивающего представление матрицы произвольного размера с возможностью изменения числа строк и столбцов, а также вывода на экран подматрицы любого размера и всей матрицы.

Записать программу на языке Python 3, демонстрирующую работу с этим классом.Вариант 8Описать класс, реализующий тип данных «вещественная матрица» и работу с ними. Класс должен реализовывать следующие действия над матрицами: сложение, вычитание, умножение, деление (умножение и деление как на другую матрицу, так и на число); вычисление обратной и транспонированной матрицы; методы, реализующие проверку типа матрицы (квадратная, диагональная нулевая, единичная).Записать программу на языке Python 3, демонстрирующую работу с этим классомВариант 9Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть следующие возможности: обращение к отдельным строкам массива по индексам; контроль выхода за пределы массива; выполнение операций поэлементного сцепления двух массивов с образованием нового массива; вывод на экран элемента массива по заданному индексу Записать программу на языке Python 3, демонстрирующую работу с этим классом.Вариант 10Составить описание класса прямоугольников со сторонами, параллельными осям координат. Предусмотреть возможность перемещения прямоугольников на плоскости, изменение размеров, построение наименьшего прямоугольника, содержащего два заданных прямоугольника, и прямоугольника, являющегося общей частью (пересечением) двух прямоугольников.Записать программу на языке Python 3, демонстрирующую работу с этим классом.

Пример: класс «Вектор на плоскости»

Двумерные векторы — очень полезный и важный геометрический объект. Векторы любой нужной размерности уже есть в библиотеке Numpy, но, если бы мы хотим реализовать двумерный вектор самостоятельно, можно это сделать, например, так:class MyVector:def __init__(self, x, y):self.x = xself.y = ydef __add__(self, other):return MyVector(self.x + other.x, self.y + other.y)def __sub__(self, other):return MyVector(self.x - other.x, self.y - other.y)def __mul__(self, other):return MyVector(self.x * other, self.y * other)def __rmul__(self, other):return MyVector(self.x * other, self.y * other)def __str__(self):return 'MyVector({}, {})'.format(self.x, self.y)v1 = MyVector(-2, 5)v2 = MyVector(3, -4)v_sum = v1 + v2print(v_sum) # MyVector(1, 1)v_mul = v1 * 1.5print(v_mul) # MyVector(-3.0, 7.5)v_rmul = -2 * v1print(v_rmul) # MyVector(4, -10)В этом примере определены методы __add__ и __sub__ для реализации классических операций сложения и вычитания векторов. Метод __mul__ реализует операцию умножения вектора на число

, а метод __rmul__ — операцию умножения числа на вектор. Для преобразования в строку используется метод __str__.
Литература.


  1. Объектно-ориентированная методология программирования (http://www.math.rsu.ru/smalltalk/sml-a.ru.html)

  2. https://pythonworld.ru/osnovy/pep-8-rukovodstvo-po-napisaniyu-koda-na-python.html

  3. https://docs-python.ru/tutorial/pep-rukovodstvo-stilju-koda-python/razmetka-koda-pep/

  4. https://pep8.ru/doc/pep8/