Основы алгоритмизации и программирования
166.00K

1 ПЗ Классы к25

1. Основы алгоритмизации и программирования

Практическое занятие.
Тема 1. Классы.

2.

Задание на самостоятельную работу
• Изучить материал выданный преподавателем.
• Проработать вопросы, изложенные в лекции, с
использованием рекомендованной литературы.
• Выучить определения, изложенные в лекции.
• Доработать свой конспект.
• Подготовиться к проведению письменного опроса.

3.

Вопрос 1. Решение типовых задач по теме Классы.
Вопрос 2. Самостоятельное программирование
задач на ПК.

4.

Справка
Классы определяют:
структуру данных, которые характеризуют объект;
свойства (атрибуты) и статус (состояние) объекта;
операции, которые можно совершать с данными
объекта (методы).
Атрибуты – это свойства, характеристики объекта.
Они определяют качества и состояние объекта.
Атрибуты объекта перечисляют внутри__init__ метода
класса – он вызывается каждый раз при создании
экземпляра класса. Параметр self создает ссылку на
экземпляр класса и позволяет получить доступ к
атрибутам и методам объекта. Для создания
экземпляра класса достаточно вызвать класс,
передавая в скобках значения, соответствующие его
атрибутам.

5.

Справка
Метод – это функция, которая определяет поведение
объекта.
Подкласс – это класс, который наследует все
атрибуты и методы родительского класса (также
известного как базовый класс или суперкласс), но при
этом
может
иметь
дополнительные,
свои
собственные, атрибуты и методы.
Встроенная функция super(), которая позволяет
вызывать методы родительского суперкласса из
подкласса. Этот прием позволяет переиспользовать
методы и расширять их функциональность.

6.

Вопрос 1
Создание простейшего класса: без подклассов, без
методов, только c обязательный __init__.
Задание 1. Создать класс Car (автомобиль) с
атрибутами make, model, year (марка, модель, год
выпуска):
Порядок работы
Запустить систему IDLE.
Ввести исходный код программы;
Проанализировать результат решения задачи
Предъявить работу преподавателю.

7.

Вопрос 1
Код программы:
class Car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year

8.

Вопрос 1
Создание экземпляра класса.
Задание 2. Создать экземпляр класса Car.
Продолжаем код программы:
my_car = Car("Toyota", "Corolla", 2023)

9.

Вопрос 1
Вывод на экран значений атрибутов.
Задание 3. Вывести на экран значения атрибутов.
Продолжаем код программы:
print(f'Марка машины {my_car.make},'
f'\nмодель {my_car.model},'
f'\nгод выпуска - {my_car.year}'
)
Результат:
Марка машины Toyota,
модель Corolla,
год выпуска – 2023

10.

Вопрос 1
Создание класса и метода.
Задание 4. Создать класс TV с атрибутами: br - бренд,
md - модель, data_pr – год выпуска, data_inv – год
инвентаризации, метод srok() - определяет возраст
техники.
Порядок работы
Запустить систему IDLE.
Ввести исходный код программы;
Проанализировать результат решения задачи
Предъявить работу преподавателю.

11.

Вопрос 1
Код программы:
# создаем класс TV и метод srok
class TV:
def __init__(self, br, md, data_pr, data_inv):
self.br = br
self.md = md
self.data_pr = data_pr
self.data_inv = data_inv
def srok(self):
s = self.data_inv - self.data_pr
return f"Возраст инвентарной единицы {s} лет."
# создаем объект телевизора
tv1 = TV("LG", "FH4U2VCN2", 2010, 2025)
# вызываем метод для расчета возраста
print(tv1.srok())

12.

Вопрос 1
Результат работы программы:
Возраст инвентарной единицы 15 лет.

13.

Вопрос 1
Создание подклассов и методов.
Задание 5. Создать ПО автосалона.
Класс
Transport
(транспортное
средство)
c
атрибутами:
mk - марка;
md - модель;
gv - год выпуска;
st - стоимость.
Среди методов должна быть операция inform(),
которая отображает информацию о конкретном
транспортном средстве, а помимо классов, в ПО
необходимо использовать подклассы.

14.

Вопрос 1
Задание 5. Создать ПО автосалона (продолжение).
Создать подкласс LA (легковой автомобиль), который
наследует все атрибуты и методы класса Transport, и
при этом имеет дополнительные атрибуты:
kd - количество дверей
sk - стиль кузова.
Создать подкласс GA (грузовой автомобиль), который
наследует все атрибуты и методы класса Transport, и
к тому же имеет свои атрибуты:
dk - длину кузова
tm - тяговую мощность.

15.

Вопрос 1
Код программы:
# создаем класс Transport
class Transport:
def __init__(self, mk, md, gv, st):
self.mk = mk
self.md = md
self.gv = gv
self.st = st
# создаем метод inform
def inform(self):
print(f"Марка: {self.mk}"
f"\nМодель: {self.md}"
f"\nГод выпуска: {self.gv}"
f"\nСтоимость: {self.st} руб")

16.

Вопрос 1
Продолжаем код программы:
# создаем подкласс "легковой автомобиль"
class LA(Transport):
def __init__(self, mk, md, gv, st, kd, sk):
super().__init__(mk, md, gv, st)
self.kd = kd
self.sk = sk
# создаем подкласс "грузовой автомобиль"
class GA(Transport):
def __init__(self, mk, md, gv, st, dk, tm):
super().__init__(mk, md, gv, st)
self.dk = dk
self.tm = tm

17.

Вопрос 1
Продолжаем код программы:
# создаем объект "легковой автомобиль"
la1 = LA("Toyota", "Camry", 2022, 2900000, 4, "седан")
# создаем объект "грузовой автомобиль"
ga1 = GA("Ford", "F-MAX", 2023, 6000000, "6162", "13 т")
# выводим информацию о легковом и грузовом
автомобилях
la1.inform()
ga1.inform()

18.

Вопрос 1
Результат работы программы:
Марка: Toyota
Модель: Camry
Год выпуска: 2022
Стоимость: 2900000 руб
Марка: Ford
Модель: F-MAX
Год выпуска: 2023
Стоимость: 6000000 руб

19.

Вопрос 1
Задание 6. Создать библиотечную программу для хранения
информации о книгах и их статусах (есть в наличии, выдана
абоненту, получена от абонента и так далее).
Класс Kniga определяет различные характеристики книги:
avt - автор,
nzv - название,
kod – код.
Методы kvd() – книга выдана и kpr() - книга принята обратно.
Порядок работы
Запустить систему IDLE.
Ввести исходный код программы;
Проанализировать результат решения задачи
Предъявить работу преподавателю.

20.

Вопрос 1
Код программы:
class Kniga:
def __init__(self, avt, nzv, kod):
self.avt = avt
self.nzv = nzv
self.kod = kod
self.abonent_vzal = False
def kvd(self):
if self.abonent_vzal:
print("Книга находится у абонента.")
else:
self.abonent_vzal = True
print("Выдаем книгу абоненту.")

21.

Вопрос 1
Продолжаем код программы:
def kpr(self):
if not self.abonent_vzal:
print("Книга в наличии.")
else:
self.abonent_vzal = False
print("Принимаем книгу в библиотеку.")
# создаем объект книги
kniga1 = Kniga("Л.Н. Толстой", "Война и мир", "9780743273565")

22.

Вопрос 1
Продолжаем код программы:
# выдаем книгу, проверяем статус
kniga1.kvd()
# проверяем статус повторно
kniga1.kvd()
# принимаем книгу от читателя
kniga1.kpr()
# проверяем статус книги повторно
kniga1.kpr()

23.

Вопрос 1
Результат работы программы:
Выдаем книгу абоненту.
Книга находится у абонента.
Принимаем книгу в библиотеку.
Книга в наличии.

24.

Вопрос 2
Самостоятельное программирование задач на ПК.
Задание 7. Класс "Прямоугольник"
Создать класс Rect, который будет представлять
прямоугольник. У класса должны быть следующие
атрибуты:
wd (ширина прямоугольника)
hg (высота прямоугольника)
Добавить методы:
ar() — возвращает площадь прямоугольника.
per() — возвращает периметр прямоугольника.
Результат работы программы:
Прямоугольник 5 на 10 см.
Площадь прямоугольника 50 кв. см.
Периметр прямоугольника 30 см.

25.

Вопрос 2
Задание 8. Класс "Машина"
Создать класс Mers, который будет представлять
автомобиль. У класса должны быть следующие
атрибуты: mk (марка автомобиля), md (модель
автомобиля),
gv
(год
выпуска),
mil
(пробег
автомобиля).
Добавить методы:
drive(distance) — увеличивает пробег автомобиля на
указанное расстояние.
inform() — возвращает строку с информацией об
автомобиле (марка, модель, год выпуска, пробег).
Подсказка:
mers = Mers("Toyota", "Corolla", 2015, 10000)
mers.drive(150)
print(car.inform()) # Ожидаемый вывод: Toyota Corolla
2015, пробег: 10150 км

26.

Вопрос 2
Задание 9. Класс "Точка"
Создать класс Tochka, который будет представлять
точку в двумерном пространстве.
У класса должны быть следующие атрибуты:
x (координата по оси X)
y (координата по оси Y)
Добавить методы:
dis(other_tochka) — возвращает расстояние до другой
точки.
Подсказка:
tochka1 = Tochka(0, 0)
tochka2 = Tochka(3, 4)
print(tochka1.dis(tochka2)) # Ожидаемый вывод: 5.0

27.

Занятие закончено
Преподаватель РАЕВСКИЙ Владимир Федорович
English     Русский Правила