Изменил(а) на 'TEMA7/report.md'

main
EfremovSI 1 месяц назад
Родитель 91403991f4
Сommit dcd593e27b

@ -300,7 +300,7 @@ def func5(diap,shag):
""" Итератор, возвращающий значения """ Итератор, возвращающий значения
из диапазона от 1 до diap с шагом shag""" из диапазона от 1 до diap с шагом shag"""
for j in range(1,diap+1,shag): for j in range(1,diap+1,shag):
yield j yield j #делает одну итерацию
for mm in func5(7,3): for mm in func5(7,3):
print(mm) print(mm)
@ -319,7 +319,7 @@ print(alp.__next__())
Traceback (most recent call last): Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module> File "<pyshell#26>", line 1, in <module>
print(alp.__next__()) print(alp.__next__())
StopIteration StopIteration #отработал условие и устал
``` ```
## 6. Локализация объектов в функциях ## 6. Локализация объектов в функциях
@ -329,14 +329,14 @@ glb=10
def func7(arg): def func7(arg):
loc1=15 loc1=15
glb=8 glb=8
return loc1*arg return loc1*arg #arg принимает значения глоб. параметра глб, поэтому на 8 не умножается
res=func7(glb);res res=func7(glb);res
150 150
def func8(arg): def func8(arg):
loc1=15 loc1=15
print(glb) print(glb) #в момент запуска glb считается локальной переменной в функции func8, однако в момент печати не была локализована
glb=8 glb=8
return loc1*arg return loc1*arg
@ -352,12 +352,12 @@ glb=11
def func7(arg): def func7(arg):
loc1=15 loc1=15
global glb global glb
print(glb) print(glb) #объявлена как глобальная и выведена до присваивания ей нового значения 8, поэтому 11
glb=8 glb=8
return loc1*arg return loc1*arg
res=func7(glb);res res=func7(glb);res
11 11
165 165 #при следующей попытке запуска функции умножит loc1 на 8, а не на 11
``` ```
**6.2. Выявление локализации объекта с помощью функций locals() и globals() из builtins** **6.2. Выявление локализации объекта с помощью функций locals() и globals() из builtins**
@ -401,7 +401,7 @@ def func9(arg2,arg3):
kk=func9(10,1) kk=func9(10,1)
glob_func9_1: dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8', 'hh', 'func9']) glob_func9_1: dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8', 'hh', 'func9'])
locl_func9_1: dict_keys(['arg1', 'loc1', 'glb1']) locl_func9_1: dict_keys(['arg1', 'loc1', 'glb1'])
loc_func9: dict_keys(['arg2', 'arg3', 'func9_1', 'loc1', 'glb']) loc_func9: dict_keys(['arg2', 'arg3', 'func9_1', 'loc1', 'glb']) #фукнция func9 сработала позже, следовательно арг2 арг3 появились позже
glob_func9: dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8', 'hh', 'func9']) glob_func9: dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8', 'hh', 'func9'])
``` ```
@ -409,7 +409,7 @@ glob_func9: dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__sp
```python ```python
import math import math
# Ввод параметров
znach = input('k1,T,k2,Xm,A,F,N=').split(',') znach = input('k1,T,k2,Xm,A,F,N=').split(',')
k1 = float(znach[0]) k1 = float(znach[0])
T = float(znach[1]) T = float(znach[1])
@ -419,17 +419,15 @@ A = float(znach[4])
F = float(znach[5]) F = float(znach[5])
N = int(znach[6]) N = int(znach[6])
print(f"Параметры системы: k1={k1}, T={T}, k2={k2}, Xm={Xm}")
print(f"Входной сигнал: A={A}, F={F}, N={N}")
# Создание входного сигнала (синусоида)
vhod = [] vhod = []
for i in range(N): for i in range(N):
vhod.append(A * math.sin((2 * i * math.pi) / F)) vhod.append(A * math.sin((2 * i * math.pi) / F))
print("Входной сигнал:", vhod[:10]) # Покажем первые 10 значений print("Входной сигнал:", vhod)
# Функции компонентов системы
def realdvig(xtt, kk1, TT, yti1, ytin1): def realdvig(xtt, kk1, TT, yti1, ytin1):
"""Модель реального двигателя""" """Модель реального двигателя"""
yp = kk1 * xtt # усилитель yp = kk1 * xtt # усилитель
@ -453,12 +451,11 @@ def nechus(xtt, gran):
ytt = xtt + gran ytt = xtt + gran
return ytt return ytt
# Моделирование системы
yi1 = 0 # состояние интегратора двигателя
yin1 = 0 # состояние инерционного звена
yi2 = 0 # состояние интегратора тахогенератора
vyhod = [] # выход системы yi1 = 0
yin1 = 0
yi2 = 0
vyhod = []
for xt in vhod: for xt in vhod:
xt1 = xt - yi2 # отрицательная обратная связь xt1 = xt - yi2 # отрицательная обратная связь

Загрузка…
Отмена
Сохранить