From d5011d112545a84fa67fa4714f76832b9f4f746a Mon Sep 17 00:00:00 2001 From: KapitonovMikA Date: Mon, 1 Dec 2025 09:17:04 +0000 Subject: [PATCH] added report --- TEMA7/pic1.png | Bin 0 -> 18786 bytes TEMA7/pic2.png | Bin 0 -> 17520 bytes TEMA7/report.md | 502 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 502 insertions(+) create mode 100644 TEMA7/pic1.png create mode 100644 TEMA7/pic2.png create mode 100644 TEMA7/report.md diff --git a/TEMA7/pic1.png b/TEMA7/pic1.png new file mode 100644 index 0000000000000000000000000000000000000000..77e3024bfe31035b111edd0f9901d5d4be785d15 GIT binary patch literal 18786 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 literal 0 HcmV?d00001 diff --git a/TEMA7/pic2.png b/TEMA7/pic2.png new file mode 100644 index 0000000000000000000000000000000000000000..1242f73629002665d30ebf57298577dca688d008 GIT binary patch literal 17520 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 literal 0 HcmV?d00001 diff --git a/TEMA7/report.md b/TEMA7/report.md new file mode 100644 index 0000000..2289b58 --- /dev/null +++ b/TEMA7/report.md @@ -0,0 +1,502 @@ +# Отчёт по теме 7 + +Капитонов Михаил, А-02-23 + +## 1 Начало работы + +Запустил среду IDLE, установил рабочую папку. + +## 2 Создание пользовательской функции + +## 2.1 Функция без аргументов + +```py +>>> def uspeh(): +... """Подтверждение успеха операции""" +... print('Выполнено успешно!') +... +>>> uspeh() +Выполнено успешно! +>>> type(uspeh) + +>>> dir() +['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os', 'uspeh'] +>>> help(uspeh) +Help on function uspeh in module __main__: +uspeh() +Подтверждение успеха операции +``` + +## 2.2 Функция с аргументами + +```py +>>> def sravnenie(a,b): +... """Сравнение a и b""" +... if a>b: +... print(a,'больше',b) +... elif a>> n,m=16,5;sravnenie(n,m) +x +16 больше 5 +>>> n,m='16','5';sravnenie(n,m) +16 меньше 5 +``` + +## 2.3 Функция с return + +```py +>>> def logistfun(b,a): +... """Вычисление логистической функции""" +... import math +... return a/(1+math.exp(-b)) +... +... +>>> v,w=1,0.7;z=logistfun(w,v) +>>> z +0.6681877721681662 +``` + +## 2.4 Сложение для разных типов аргументов + +```py +>>> def slozh(a1,a2,a3,a4): +... """Сложение значений четырех аргументов""" +... return a1+a2+a3+a4 +... +>>> slozh(1,2,3,4) +10 +>>> slozh('1','2','3','4') +'1234' +>>> b1=[1,2];b2=[-1,-2];b3=[0,2];b4=[-1,-1] +>>> q=slozh(b1,b2,b3,b4) +>>> q +[1, 2, -1, -2, 0, 2, -1, -1] +>>> b1=(1,2);b2=(-1,-2);b3=(0,2);b4=(-1,-1) +>>> slozh(b1,b2,b3,b4) +(1, 2, -1, -2, 0, 2, -1, -1) +>>> b1={'a':1};b2={'b':2};b3={'c':3};b4={'d':4} +>>> slozh(b1,b2,b3,b4) +Traceback (most recent call last): +File "", line 1, in +slozh(b1,b2,b3,b4) +File "", line 3, in slozh +return a1+a2+a3+a4 +TypeError: unsupported operand type(s) for +: 'dict' and 'dict' +>>> b1={'a',1};b2={'b',2};b3={'c',3};b4={'d',4} +>>> slozh(b1,b2,b3,b4) +Traceback (most recent call last): +File "", line 1, in +slozh(b1,b2,b3,b4) +File "", line 3, in slozh +return a1+a2+a3+a4 +TypeError: unsupported operand type(s) for +: 'set' and 'set' +``` + +## 2.5 Модель устройства + +```py +>>> def inerz(x,T,ypred): +... """ Модель устройства с памятью: +... x- текущее значение вх.сигнала, +... T -постоянная времени, +... ypred - предыдущее значение выхода устройства""" +... y=(x+T\*ypred)/(T+1) +... return y +... +>>> sps=[0]+[1]*100 +>>> spsy=[] +>>> TT=20 +>>> yy=0 +>>> for xx in sps: +... yy=inerz(xx,TT,yy) +... spsy.append(yy) +... +>>> import matplotlib.pyplot as plt +>>> plt.plot(spsy) +[] +>>> plt.title('Сигнал на выходе устройства') +Text(0.5, 1.0, 'Сигнал на выходе устройства') +``` +![График](pic1.png) + +## 3 Функции как объекты + +## 3.1 Список атрибутов + +```py +>>> dir(inerz) +\['\_\_annotations\_\_', '\_\_builtins\_\_', '\_\_call\_\_', '\_\_class\_\_', '\_\_closure\_\_', '\_\_code\_\_', '\_\_defaults\_\_', '\_\_delattr\_\_', '\_\_dict\_\_', '\_\_dir\_\_', '\_\_doc\_\_', '\_\_eq\_\_', '\_\_format\_\_', '\_\_ge\_\_', '\_\_get\_\_', '\_\_getattribute\_\_', '\_\_getstate\_\_', '\_\_globals\_\_', '\_\_gt\_\_', '\_\_hash\_\_', '\_\_init\_\_', '\_\_init\_subclass\_\_', '\_\_kwdefaults\_\_', '\_\_le\_\_', '\_\_lt\_\_', '\_\_module\_\_', '\_\_name\_\_', '\_\_ne\_\_', '\_\_new\_\_', '\_\_qualname\_\_', '\_\_reduce\_\_', '\_\_reduce\_ex\_\_', '\_\_repr\_\_', '\_\_setattr\_\_', '\_\_sizeof\_\_', '\_\_str\_\_', '\_\_subclasshook\_\_', '\_\_type\_params\_\_'] +>>> inerz.__doc__ +'Модель устройства с памятью: +x- текущее значение вх.сигнала, +T -постоянная времени, +ypred - предыдущее значение выхода устройства' +>>> help(inerz) +Help on function inerz in module __main__: +inerz(x, T, ypred) +Модель устройства с памятью: +x- текущее значение вх.сигнала, +T -постоянная времени, +ypred - предыдущее значение выхода устройства +``` + +## 3.2 Сохранение ссылки на объект-функцию в другой переменной + +```py +>>> fnkt = sravnenie +>>> v=16 +>>> fnkt(v,23) +16 меньше 23 +``` + +## 3.3 Возможность альтернативного определения функции в программе + +```py +>>> typ_fun=8 +>>> if typ_fun==1: +... def func(): +... print('Функция 1') +... else: +... def func(): +... print('Функция 2') +... +>>> func() +Функция 2 +``` + +## 4 Аргументы функции + +## 4.1 Использование функции в качестве аргумента другой функции + +```py +>>> def fun\_arg(fff,a,b,c): +... """fff-имя функции, используемой +... в качестве аргумента функции fun_arg""" +... return a+fff(c,b) +... +>>> zz=fun_arg(logistfun,-3,1,0.7) +>>> zz +-2.3318122278318336 +``` + +## 4.2 Обязательные и необязательные аргументы + +```py +>>> def logistfun(a,b=1): #Аргумент b – необязательный; значение по умолчанию=1 +... """Вычисление логистической функции""" +... import math +... return b/(1+math.exp(-a)) +... +>>> logistfun(0.7) +0.6681877721681662 +>>> logistfun(0.7,2) +1.3363755443363323 +``` + +## 4.3 Обращение к функции с произвольным (непозиционным) расположением аргументов + +```py +>>> logistfun(b=0.5,a=0.8) +0.34498724056380625 +``` + +## 4.4 Значения аргументов функции, содержащиеся в списке или кортеже + +```py +>>> b1=[1,2];b2=[-1,-2];b3=[0,2];b4=[-1,-1] +>>> b1234=[b1,b2,b3,b4] +>>> qq=slozh(*b1234) +>>> qq +[1, 2, -1, -2, 0, 2, -1, -1] +``` + +## 4.5 Значения аргументов функции, содержащиеся в словаре + +```py +>>> dic4={"a1":1,"a2":2,"a3":3,"a4":4} +>>> qqq=slozh(**dic4) +>>> qqq +10 +``` + +## 4.6 Смешанные ссылки + +```py +>>> e1=(-1,6);dd2={'a3':3,'a4':9} +>>> qqqq=slozh(*e1,**dd2) +>>> qqqq +17 +``` + +## 4.7 Переменное число аргументов у функции + +```py +>>> def func4(*kort7): +... """Произвольное число аргументов в составе кортежа""" +... smm=0 +... for elt in kort7: +... smm+=elt +... return smm +... +>>> func4(-1,2) +1 +>>> func4(-1,2,0,3,6) +10 +``` + +## 4.8 Комбинация аргументов + +```py +def func4(a,b=7,*kort7): #Аргументы: a-позиционный, b- по умолчанию + кортеж + """Кортеж - сборка аргументов - должен быть последним!""" + smm=0 + for elt in kort7: + smm+=elt + return a*smm+b + +func4(-1,2,0,3,6) +-7 +``` + +## 4.9 Изменение значений объектов, используемых в качестве аргументов функции + +```py +>>> a=90 +>>> def func3(b): +... b=5*b+67 +... +>>> func3(a) +>>> a +90 +>>> sps1=[1,2,3,4] +>>> def func2(sps): +... sps[1]=99 +... +>>> func2(sps1) +>>> print(sps1) +[1, 99, 3, 4] +>>> kort=(1,2,3,4) +>>> func2(kort) +Traceback (most recent call last): + File "", line 1, in + func2(kort) + File "", line 2, in func2 + sps\[1]=99 +TypeError: 'tuple' object does not support item assignment +``` + +## 5 Специальные типы пользовательских функций + +## 5.1 Анонимные функции + +```py +>>> import math +>>> anfun1=lambda: 1.5+math.log10(17.23) +>>> anfun1() +2.7362852774480286 +>>> anfun2=lambda a,b : a+math.log10(b) +>>> anfun2(17,234) +19.369215857410143 +>>> anfun3=lambda a,b=234: a+math.log10(b) +>>> anfun3(100) +102.36921585741014 +``` + +## 5.2 Функции-генераторы + +```py +>>> def func5(diap,shag): +... """ Итератор, возвращающий значения +... из диапазона от 1 до diap с шагом shag""" +... for j in range(1,diap+1,shag): +... yield j +... +>>> for mm in func5(7,3): +... print(mm) +... +1 +4 +7 +>>> alp=func5(7,3) +>>> print(alp.__next__()) +1 +>>> print(alp.__next__()) +4 +>>> print(alp.__next__()) +7 +``` + +## 6 Локализация объектов в функциях + +## 6.1 Примеры локализации + +```py +>>> glb = 10 +>>> def func7(arg): +... loc1=15 +... glb=8 +... return loc1*arg +... +>>> res=func7(glb) +>>> glb +10 +>>> def func8(arg): +... loc1=15 +... print(glb) +... glb=8 +... return loc1*arg +... +>>> res=func8(glb) +Traceback (most recent call last): + File "", line 1, in + res=func8(glb) + File "", line 3, in func8 + print(glb) +UnboundLocalError: cannot access local variable 'glb' where it is not associated with a value + +# Переменная glb не объявлена внутри функции + +>>> glb=11 +>>> def func7(arg): +... loc1=15 +... global glb +... print(glb) +... glb=8 +... return loc1\*arg +... +>>> res=func7(glb) +11 +>>> glb +8 +``` + +## 6.2 Выявление локализации объекта с помощью функций locals() и globals() из builtins + +```py +>>> globals().keys() +dict\_keys(\['\_\_name\_\_', '\_\_doc\_\_', '\_\_package\_\_', '\_\_loader\_\_', '\_\_spec\_\_', '\_\_annotations\_\_', '\_\_builtins\_\_', 'os', 'uspeh', 'sravnenie', 'n', 'm', 'logistfun', 'v', 'w', 'z', 'slozh', 'b1', 'b2', 'b3', 'b4', 'q', 'inerz', 'sps', 'spsy', 'TT', 'yy', 'xx', 'plt', 'fnkt', 'typ\_fun', 'func', 'fun\_arg', 'zz', 'b1234', 'qq', 'dic4', 'qqq', 'e1', 'dd2', 'qqqq', 'func4', 'a', 'func3', 'sps1', 'func2', 'kort', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8']) +>>> locals().keys() +dict\_keys(\['\_\_name\_\_', '\_\_doc\_\_', '\_\_package\_\_', '\_\_loader\_\_', '\_\_spec\_\_', '\_\_annotations\_\_', '\_\_builtins\_\_', 'os', 'uspeh', 'sravnenie', 'n', 'm', 'logistfun', 'v', 'w', 'z', 'slozh', 'b1', 'b2', 'b3', 'b4', 'q', 'inerz', 'sps', 'spsy', 'TT', 'yy', 'xx', 'plt', 'fnkt', 'typ\_fun', 'func', 'fun\_arg', 'zz', 'b1234', 'qq', 'dic4', 'qqq', 'e1', 'dd2', 'qqqq', 'func4', 'a', 'func3', 'sps1', 'func2', 'kort', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8']) +>>> # Текущая область - глобальная +>>> def func8(arg): +... loc1=15 +... glb=8 +... print(globals().keys()) #Перечень глобальных объектов «изнутри» функции +... print(locals().keys()) #Перечень локальных объектов «изнутри» функции +... return loc1*arg +... +>>> hh = func8(glb) +dict\_keys(\['\_\_name\_\_', '\_\_doc\_\_', '\_\_package\_\_', '\_\_loader\_\_', '\_\_spec\_\_', '\_\_annotations\_\_', '\_\_builtins\_\_', 'os', 'uspeh', 'sravnenie', 'n', 'm', 'logistfun', 'v', 'w', 'z', 'slozh', 'b1', 'b2', 'b3', 'b4', 'q', 'inerz', 'sps', 'spsy', 'TT', 'yy', 'xx', 'plt', 'fnkt', 'typ\_fun', 'func', 'fun\_arg', 'zz', 'b1234', 'qq', 'dic4', 'qqq', 'e1', 'dd2', 'qqqq', 'func4', 'a', 'func3', 'sps1', 'func2', 'kort', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8']) +dict_keys(['arg', 'loc1', 'glb']) +>>> # Во втором списке - локальные объекты, использующиеся при работе функции func8 +>>> 'glb' in globals().keys() +True +``` + +## 6.3 Локализация объектов при использовании вложенных функций + +```py +>>> def func9(arg2,arg3): +... def func9_1(arg1): +... loc1=15 +... glb1=8 +... print('glob_func9_1:',globals().keys()) +... print('locl_func9_1:',locals().keys()) +... return loc1*arg1 +... loc1=5 +... glb=func9_1(loc1) +... print('loc_func9:',locals().keys()) +... print('glob_func9:',globals().keys()) +... return arg2+arg3*glb +... +>>> kk=func9(10,1) +glob\_func9\_1: dict\_keys(\['\_\_name\_\_', '\_\_doc\_\_', '\_\_package\_\_', '\_\_loader\_\_', '\_\_spec\_\_', '\_\_annotations\_\_', '\_\_builtins\_\_', 'os', 'uspeh', 'sravnenie', 'n', 'm', 'logistfun', 'v', 'w', 'z', 'slozh', 'b1', 'b2', 'b3', 'b4', 'q', 'inerz', 'sps', 'spsy', 'TT', 'yy', 'xx', 'plt', 'fnkt', 'typ\_fun', 'func', 'fun\_arg', 'zz', 'b1234', 'qq', 'dic4', 'qqq', 'e1', 'dd2', 'qqqq', 'func4', 'a', 'func3', 'sps1', 'func2', 'kort', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8', 'hh', 'func9']) +locl_func9_1: dict_keys(\['arg1', 'loc1', 'glb1']) +loc_func9: dict_keys(\['arg2', 'arg3', 'func9_1', 'loc1', 'glb']) +glob\_func9: dict\_keys(\['\_\_name\_\_', '\_\_doc\_\_', '\_\_package\_\_', '\_\_loader\_\_', '\_\_spec\_\_', '\_\_annotations\_\_', '\_\_builtins\_\_', 'os', 'uspeh', 'sravnenie', 'n', 'm', 'logistfun', 'v', 'w', 'z', 'slozh', 'b1', 'b2', 'b3', 'b4', 'q', 'inerz', 'sps', 'spsy', 'TT', 'yy', 'xx', 'plt', 'fnkt', 'typ\_fun', 'func', 'fun\_arg', 'zz', 'b1234', 'qq', 'dic4', 'qqq', 'e1', 'dd2', 'qqqq', 'func4', 'a', 'func3', 'sps1', 'func2', 'kort', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8', 'hh', 'func9']) +>>> # Списки глобальных объектов совпадают, локальные объекты доступны только внутри соответствующих функций +``` + +## 6.4 Пример моделирования системы + +```py +>>> import math +>>> znach=input('k1,T,k2,Xm,A,F,N=').split(',') +k1,T,k2,Xm,A,F,N=2,10,3,1,5,0.025,30 +>>> k1=float(znach[0]) +>>> T=float(znach[1]) +>>> k2=float(znach[2]) +>>> Xm=float(znach[3]) +>>> A=float(znach[4]) +>>> F=float(znach[5]) +>>> N=int(znach[6]) +>>> vhod=[] +>>> for i in range(N): +... vhod.append(A*math.sin((2*i*math.pi)*F)) +... +>>> vhod +[0.0, 0.7821723252011543, 1.545084971874737, 2.2699524986977337, 2.938926261462366, 3.5355339059327378, 4.045084971874737, 4.455032620941839, 4.755282581475767, 4.938441702975689, 5.0, 4.938441702975689, 4.755282581475768, 4.4550326209418385, 4.045084971874737, 3.5355339059327378, 2.9389262614623664, 2.2699524986977324, 1.5450849718747375, 0.7821723252011549, 6.123233995736766e-16, -0.7821723252011559, -1.5450849718747364, -2.2699524986977333, -2.938926261462365, -3.5355339059327386, -4.04508497187474, -4.455032620941839, -4.755282581475767, -4.938441702975688] +>>> def realdvig(xtt,kk1,TT,yti1,ytin1): +... #Модель реального двигателя +... yp=kk1*xtt #усилитель +... yti1=yp+yti1 #Интегратор +... ytin1=(yti1+TT*ytin1)/(TT+1) +... return [yti1,ytin1] +... +>>> def tahogen(xtt,kk2,yti2): +... #Модель тахогенератора +... yp=kk2*xtt #усилитель +... yti2=yp+yti2 #интегратор +... return yti2 +... +... +>>> def nechuvst(xtt,gran): +... #зона нечувствительности +... if xtt(-gran): +... ytt=0 +... elif xtt>=gran: +... ytt=xtt-gran +... elif xtt<=(-gran): +... ytt=xtt+gran +... return ytt +... +>>> yi1=0;yin1=0;yi2=0 +>>> vyhod=[] +>>> for xt in vhod: +... xt1=xt-yi2 #отрицательная обратная связь +... [yi1,yin1]=realdvig(xt1,k1,T,yi1,yin1) +... yi2=tahogen(yin1,k2,yi2) +... yt=nechus(yin1,Xm) +... vyhod.append(yt) +... +... +>>> print('y=',vyhod) +y= [0, 0, 0, 0, 0, 0, 0, -1.299465163446989, -1.3579959054305797, 0, 3.7144096317728987, 7.811411673609909, 6.5646766889828605, -1.7207792337901524, -18.81372872718616, -31.38046599103643, -22.278866622819873, 17.097152611947436, 77.81058529582174, 112.97718138176809, 62.60779574768801, -98.35894773519156, -309.62984734263415, -395.51094806311954, -151.2442551724449, 474.0906424325323, 1190.4363664389593, 1337.7521059074418, 237.48484712636358, -2125.064719245332] +>>> import matplotlib.pyplot as plt +>>> plt.plot(vyhod) +[] +``` +![График2](pic2.png) + + + + + + + + + + + + + + + + + + +