форкнуто от 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()
|
||||||
Загрузка…
Ссылка в новой задаче