Похожие презентации:
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.
Занятие законченоПреподаватель РАЕВСКИЙ Владимир Федорович