ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 14.03.2024
Просмотров: 153
Скачиваний: 0
СОДЕРЖАНИЕ
Лабораторная работа №3 «Создание классов. Создание экземпляров классов. Создание конструкторов»
Арифметическое выражение лр1: Арифметическое выражение лр2:
Лабораторная работа №4 «Создание меню в Python-программе. Инкапсуляция»
Лабораторная работа №5 «Табулирование функции»
Лабораторная работа №6 «Работа с библиотеками Python»
Лабораторная работа № 7 «Создание приложений, использующих итеративные циклические структуры»
3. Выполнение проекта и получение результатов
4.Доказательство правильности работы программ
Лабораторная работа №8 «Программирование Python-приложений с использованием библиотеки Tkinter»
1.Задание на разработку проекта
3.Выполнение проекта и получение результатов
4.Доказательство правильности работы программ
Лабораторная работа №9 «Работа с кортежами»
Лабораторная работа №10 «Работа со словарями»
Лабораторная работа №11 «Работа со списками»
Лабораторная работа №12 «Базовые алгоритмы обработки списков и их сортировка»
Лабораторная работа №13 «Работа со вложенными последовательностями»
Упражнение 2.2
-
Задание на разработку проекта
Создать пустой класс MyClass и атрибут x объекта класса равным 100. Создать два экземпляра класса obj1 и obj2 и добавить одноимённый атрибут y для первого экземпляра класса равным 10, для второго равным 20.
Для выполнения задания следовало разработать:
-
Пустой класс MyClass
-
Атрибут класса MyClass.x и задать параметр равным 100.
-
Два экземпляра obj1 и obj2 класса MyClass()
-
Экземплярам obj1 и obj2 добавить одноименные атрибуты y
-
Для экземпляра obj1.y задать параметр 10
-
Для экземпляра obj2.y задать параметр 20
В основной части программы вывести значения экземпляров класса.
-
Разработка алгоритма
Код программы представлен в Листинге 2
Листинг 2
class MyClass:
pass
MyClass.x = 100
obj1, obj2 = MyClass(), MyClass()
obj1.y = 10
obj2.y = 20
print('obj1.x = {0} obj1.y = {1}'.format(obj1.x, obj1.y))
print('obj2.x = {0} obj2.y = {1}'.format(obj2.x, obj2.y))
-
Выполнение проекта и получение результатов.
Результат работы программы представлен на Рисунке 2:
Рисунок
2
- Результат
работы второй программы
Упражнение 2.3
-
Задание на разработку проекта
Демонстрация различия между атрибутами объектов класса и атрибутами экземпляров класса.
Для выполнения задания следовало разработать:
-
Класс MyClass.
-
В классе MyClass добавить атрибут x равный 10
-
Метод __init__(self) для определения атрибута экземпляра класса y равного 20.
-
Экземпляры класса obj1 и obj2.
В основной части программы изменить значение x на 50 и y для экземпляра класса obj1 равного 90. Создать новый x для экземпляра класса obj2 равного 60 и изменить значение атрибута объекта класса MyClass.x на 80 и вывести все атрибуты класса.
-
Разработка алгоритма
Код программы представлен в Листинге 3
Листинг 3
class MyClass:
x = 10
def __init__(self):
self.y = 20
obj1, obj2 = MyClass(), MyClass()
print('obj1.x = {0} obj2.x = {1}'.format(obj1.x, obj2.x))
MyClass.x = 50
print('obj1.x = {0} obj2.x = {1}'.format(obj1.x, obj2.x))
print('obj1.y = {0} obj2.y = {1}'.format(obj1.y, obj2.y))
obj1.y = 90
print('obj1.y = {0} obj2.y = {1}'.format(obj1.y, obj2.y))
obj2.x = 60
MyClass.x = 80
print('obj1.x = {0} obj2.x = {1} MyClass.x = {2}'.format(obj1.x, obj2.x, MyClass.x))
-
Выполнение проекта и получение результатов.
Результат работы программы представлен на Рисунке 3:
Рисунок
3
- Результат
работы третьей программы
Упражнения 2.4
-
Задание на разработку проекта
Инициализация объектов класса помощью конструктора
Для выполнения задания следовало разработать:
-
Класс Dist()
-
Метод __init__(self, mt, ct) для инициализации атрибутов класса.
-
В методе __init__(self, mt, ct) реализовать вывод надписи “Конструктор работает”
-
Метод get_dist(self) для получения значений с клавиатуры.
-
Метод show_dist(self) для вывода значений атрибутов.
-
Создать 3 объекта класса Dist(): dist1, dist2 и dist3.
В основной части программы для объектов dist1 и dist2 задать параметры 0, 0.0 и 14, 25 соответственно. Для dist3 параметры вводит пользователь. Вывести значения всех объектов с помощью метода show_dist(self).
-
Разработка алгоритма
Код программы представлен в Листинге 4
Листинг 4
class Dist:
def __init__(self, mt, ct):
self.meters = mt
self.centimeters = ct
print('Работает контруктор')
def get_dist(self):
self.meters = int(input('Введите число метров'))
self.centimeters = float(input('Введите число сантиметров:'))
def show_dist(self):
print ('{0} м {1} см'.format(self.meters, self.centimeters))
dist1 = Dist(0, 0.0)
dist2 = Dist(14, 25.)
dist3 = Dist(0, 0.0)
dist3.get_dist()
print('dist1 = ', end = '')
dist1.show_dist()
print('dist2 = ', end = '')
dist2.show_dist()
print('dist = ', end = '')
dist3.show_dist()
-
Выполнение проекта и получение результатов.
Результат работы программы представлен на Рисунке 4:
Рисунок
4 - Результат работы четвертой программы
2 Часть
-
Задание на разработку проекта
Создать класс с методом конструктора, в котором есть метод расчета варианта из ЛР 1 и в котором есть три метода для каждой ветви системы расчета кусочно-ломанной функции из ЛР2.
Арифметическое выражение лр1: Арифметическое выражение лр2:
Для выполнения задания следовало разработать:
-
Класс Lab(a, b, x, y) в котором создать 4 метода
-
Метод resh0(self) для решения арифметического выражения из ЛР1
-
Методы resh1(self), resh2(self) и resh3(self) предназначенные для решения 3-х веток кусочно-ломанной функции из ЛР2
-
В каждом методе организовать вывод ответа, после подстановки значений
В основной части программы реализовать объявление класса, ввод значений, а также вывод ответов после подстановки значений.
Формализация задания:
Для объявления класса в языке программирования Python надо воспользоваться оператором class, после этого нужно задать имя классу. Для инициализации значений надо воспользоваться методом __init__(self) и инициализировать значения a, b, x, y. После создать 4 метода, которые решают арифметические выражения.
-
Разработка алгоритма
Ниже представлена блок-схема метода resh0(), который решает арифметическое выражение из ЛР№1
Рисунок
5 - Блок-схема функции resh0(),
для решения арифметического выражения
из ЛР№1
На рисунке 6 показана блок-схема метода resh1(), который решает условие 1-ой ветки из ЛР№2
Рисунок
6 - Блок-схема метода resh1(),
который решает условие из 1-ой ветки
ЛР№2
На рисунке 7 показана блок-схема метода resh2(), который решает условие 2-ой ветки из ЛР№2
Рисунок
7 - Блок-схема метода resh2(), который решает
условие 2-ой ветки из ЛР№2
На рисунке 8 показана блок-схема метода resh3(), который решает условие 3-ей ветки из ЛР№2
Рисунок
8 - Блок-схема метода resh3(), который решает
условие 3-ей ветки из ЛР№2
На рисунке 5 показана блок-схема основной части программы
Рисунок
5 - Блок-схема основной части программы
Код программы
import math
class Lab():
def __init__(self, a, b, x, y):
self.x = x
self.y = y
self.a = a
self.b = b
def resh0(self):
h = math.sqrt(math.exp(2*self.x) * math.sqrt(self.x) + ((self.x-1/3)/self.x)) * math.fabs(math.cos(2.5*self.x))
return h
def resh1(self):
r = x**3 + (math.log(x + a))**2
return r
def resh2(self):
if abs(x) + a > abs(y) + b:
minim1 = abs(y) + b
else:
minim1 = abs(x) + a
if a > x:
minim2 = x
else:
minim2 = a
if minim1 > minim2:
r = minim2
else:
r = minim1
return r
def resh3(self):
if math.e**(a+b) < math.log(x**2 + y**2)**2:
r = math.log(x**2 + y**2)**2
else:
r = math.e**(a+b)
return r
a = float(input('Введите значение a: '))
b = float(input('Введите значение b: '))
x = float(input('Введите значение x: '))
y = float(input('Введите значение y: '))
rez = Lab(a, b, x, y)
print('Результат ЛР1: ', rez.resh0())
if x > 0:
j = rez.resh1()
elif x <= 0 and y <= 0:
j= rez.resh2()
else:
j = rez.resh3()
print('Результат ЛР2: ', j)