форкнуто от main/python-labs
Родитель
38387e98f7
Сommit
5b78df2a99
@ -0,0 +1,18 @@
|
||||
class Class1: #Объявление класса Class1 в модуле
|
||||
def zad_zn(self,znach): # 1 Метод класса
|
||||
self.data=znach # self - ссылка на экземпляр класса Class1
|
||||
def otobrazh(self): # 2 Метод класса
|
||||
print(self.data)#Отображение данных экземпляра
|
||||
class Class2(Class1): #Class2 - наследник класса Class1
|
||||
def otobrazh(self): # Метод класса Class2
|
||||
print('значение=',self.data)#Отображение данных экземпляра
|
||||
def otobrazh(objekt): #Объявление самостоятельной функции
|
||||
print('значение объекта=',objekt)
|
||||
|
||||
class Class3(Class2): #Наследник класса Class2, а через него – и класса Class1
|
||||
def __init__(self,znach): #Конструктор-вызывается при создании нового экземпляра класса
|
||||
self.data=znach
|
||||
def __add__(self,drug_zn): #Вызывается, когда экземпляр участвует в операции «+»
|
||||
return Class3(self.data+drug_zn)
|
||||
def zad_dr_zn(self,povtor): #А это - обычный метод
|
||||
self.data*=povtor
|
||||
@ -0,0 +1,21 @@
|
||||
class SAU:
|
||||
def __init__(self,zn_param):
|
||||
self.param=zn_param
|
||||
self.ypr=[0,0]
|
||||
|
||||
def zdn_zn(self,upr):
|
||||
self.x=upr
|
||||
|
||||
def model(self):
|
||||
def inerz(x,T,yy):
|
||||
return (x+T*yy)/(T+1)
|
||||
|
||||
y0=self.x-self.ypr[1]*self.param[3] #Обр.связь с усилителем 2
|
||||
y1=self.param[0]*y0 #Усилитель1
|
||||
y2=inerz(y1,self.param[1],self.ypr[0]) #Инерционное звено1
|
||||
y3=inerz(y2,self.param[2],self.ypr[1]) #Инерционное звено2
|
||||
self.ypr[0]=y2
|
||||
self.ypr[1]=y3
|
||||
|
||||
def otobraz(self):
|
||||
print('y=',self.ypr[1])
|
||||
@ -0,0 +1,30 @@
|
||||
class Departament:
|
||||
|
||||
def __init__(self,fio,otdel,dolzhnost,oklad):
|
||||
self.fio = fio
|
||||
self.otdel = otdel
|
||||
self.dolzhnost = dolzhnost
|
||||
self.oklad = oklad
|
||||
self.__prm = list()
|
||||
def increase(self,put):
|
||||
self.oklad += put
|
||||
|
||||
def new_work(self,new_otdel):
|
||||
self.otdel = new_otdel
|
||||
|
||||
def new_dolzhnost(self,new_dolzh):
|
||||
self.dolzhnost = new_dolzh
|
||||
|
||||
def all_info(self):
|
||||
print(self.fio,self.otdel,self.dolzhnost,self.oklad,self.prop)
|
||||
|
||||
def getter(self):
|
||||
return self.__prm
|
||||
|
||||
def setter(self,new):
|
||||
self.__prm.append(new)
|
||||
|
||||
prop = property(getter,setter)
|
||||
|
||||
|
||||
|
||||
|
После Ширина: | Высота: | Размер: 14 KiB |
|
После Ширина: | Высота: | Размер: 18 KiB |
|
После Ширина: | Высота: | Размер: 18 KiB |
|
После Ширина: | Высота: | Размер: 15 KiB |
@ -0,0 +1,70 @@
|
||||
# Общее контрольное задание по теме 8
|
||||
|
||||
**Антонов Дмитрий, А-03-23** \
|
||||
Общее контрольное задание.
|
||||
Создайте и запишите в модуль класс, содержащий следующие компоненты:
|
||||
- конструктор, задающий четырем атрибутам (fio, otdel, dolzhnost, oklad), представляющим фа-милии сотрудников, название отделов, названия должностей сотрудников и размеры их окладов, некоторые начальные значения;
|
||||
- метод для обеспечения операции повышения оклада сотрудника на заданное значение;
|
||||
- метод для обеспечения перевода сотрудника из одного отдела в другой;
|
||||
- метод для изменения должности сотрудника;
|
||||
- свойство, содержащее перечень (список) поощрений сотрудника.
|
||||
```py
|
||||
class Departament:
|
||||
|
||||
def __init__(self,fio,otdel,dolzhnost,oklad):
|
||||
self.fio = fio
|
||||
self.otdel = otdel
|
||||
self.dolzhnost = dolzhnost
|
||||
self.oklad = oklad
|
||||
self.__prm = list()
|
||||
def increase(self,put):
|
||||
self.oklad += put
|
||||
|
||||
def new_work(self,new_otdel):
|
||||
self.otdel = new_otdel
|
||||
|
||||
def new_dolzhnost(self,new_dolzh):
|
||||
self.dolzhnost = new_dolzh
|
||||
|
||||
def all_info(self):
|
||||
print(self.fio,self.otdel,self.dolzhnost,self.oklad,self.prop)
|
||||
|
||||
def getter(self):
|
||||
return self.__prm
|
||||
|
||||
def setter(self,new):
|
||||
self.__prm.append(new)
|
||||
|
||||
prop = property(getter,setter)
|
||||
```
|
||||
Задание: Создайте 2 экземпляра класса, задайте им некоторые значения атрибутов и свойства. Отобразите эти значения. Попробуйте с этими экземплярами операции перевода из отдела в отдел, измене-ния должности и оклада, объявления благодарности.
|
||||
```py
|
||||
from control import Departament
|
||||
empl_fr = Departament("Иванов И.И.","УИТ","Доцент",100)
|
||||
empl_sec = Departament("Петров П.П.","ИРЭ","Аспирант",50)
|
||||
|
||||
empl_fr.all_info()
|
||||
Иванов И.И. УИТ Доцент 100 []
|
||||
|
||||
empl_sec.all_info()
|
||||
Петров П.П. ИРЭ Аспирант 50 []
|
||||
|
||||
empl_sec.new_work("УИТ")
|
||||
empl_sec.all_info()
|
||||
Петров П.П. УИТ Аспирант 50
|
||||
|
||||
empl_fr.new_dolzhnost("Академик")
|
||||
empl_fr.increase(120)
|
||||
empl_fr.all_info()
|
||||
Иванов И.И. УИТ Академик 220
|
||||
|
||||
empl_fr.prop="Отличная работа!"
|
||||
empl_fr.all_info()
|
||||
Иванов И.И. УИТ Академик 220 Отличная работа!
|
||||
|
||||
empl_fr.prop="Отличная работа!"
|
||||
empl_fr.prop="Отличная работа!"
|
||||
empl_fr.prop="Отличная работа!"
|
||||
empl_fr.all_info()
|
||||
Иванов И.И. УИТ Доцент 100 ['Отличная работа!', 'Отличная работа!', 'Отличная работа!']
|
||||
```
|
||||
@ -0,0 +1,14 @@
|
||||
###main_SAU
|
||||
prm=[0.01,4,1.3,0.8] #Параметры модели: коэф.усиления, 2 пост.времени, обратная связь
|
||||
from SAU import *
|
||||
xx=[0]+[1]*20 #Входной сигнал – «ступенька»
|
||||
SAUe=SAU(prm) # Создаём экземпляр класса
|
||||
yt=[]
|
||||
for xt in xx: # Прохождение входного сигнала
|
||||
SAUe.zdn_zn(xt)
|
||||
SAUe.model()
|
||||
SAUe.otobraz()
|
||||
yt.append(SAUe.ypr[1])
|
||||
import pylab
|
||||
pylab.plot(yt)
|
||||
pylab.show()
|
||||
Загрузка…
Ссылка в новой задаче