ответвлено от main/python-labs
third commit report changing
Этот коммит содержится в:
147
TEMA8/report.md
147
TEMA8/report.md
@@ -151,6 +151,149 @@ qq= 82226315585.59491
|
||||
'5'
|
||||
```
|
||||
|
||||
## 3.2
|
||||
## 3.2 Создание модулей для реализации программы моделирования системы управления
|
||||
|
||||
## 3.3
|
||||
Были созданы модули MM1 - с функциями реализующими реальный двигатель, тахогенератор и нелинейное звено; MM2 - с инструкциями, обеспечивающими ввод параметров задачи, формирование входного сигнала, импорт модуля ММ1 и реализацию модели при расчете выходного сигнала; MM0 - содержащую импорт модуля MM2 и печатающую получившийся выходной сигнал. Был вызван модуль MM0.
|
||||
|
||||
```py
|
||||
================= RESTART: C:\Users\Лиза\OneDrive\Desktop\python-labs\TEMA8\MM0.py =================
|
||||
k1,T,k2,Xm,A,F,N=0.5,35,0.6,5,1000,5,15
|
||||
y= [0, 8.209118281877132, 29.104924685415277, 40.86232427117668, 38.3075414151359, 34.68635884409398, 42.90679739719954, 57.19526562043458, 60.53754513466764, 47.64611630565597, 31.742316122264157, 25.812753880749888, 24.278160244795345, 10.44509996519298, -10.518946273258612]
|
||||
```py
|
||||
|
||||
## 3.3 Изучение области действия обьектов в модулях
|
||||
|
||||
Была изучена область действия обьектов в модулях. Исходя из примеров, приведенных ниже, можно сказать, что обьекты входящие в один модуль будут локализованы в этом модуле и доступны в нем. К переменным из другого модуля, даже импортированного в главный (выполняемый) модуль, прямого доступа не будет.
|
||||
|
||||
## 3.3.1 Изучение области действия обьектов в модулях (пример 1)
|
||||
|
||||
Внутрь модуля Mod2 в функцию alpha был добавлен вызов функции beta.
|
||||
|
||||
```
|
||||
def alpha():
|
||||
print('****ALPHA****')
|
||||
t=input('Значение t=')
|
||||
n = beta(6)
|
||||
print(n)
|
||||
return t
|
||||
```
|
||||
Далее запущен модуль и вызвана функция alpha. Можно заметить, что инструкции успешно выполнились.
|
||||
|
||||
```py
|
||||
>>>alpha()
|
||||
****ALPHA****
|
||||
Значение t=9
|
||||
153552935.39544657
|
||||
'9'
|
||||
```
|
||||
Далее в модуле в функции beta был добавлен вызов функции alpha.
|
||||
|
||||
```py
|
||||
def beta(q):
|
||||
import math
|
||||
expi=q*math.pi
|
||||
alpha()
|
||||
return math.exp(expi)
|
||||
```
|
||||
|
||||
Функция beta была успешно вызвана
|
||||
|
||||
```
|
||||
beta(6)
|
||||
****ALPHA****
|
||||
Значение t=9
|
||||
153552935.39544657
|
||||
```
|
||||
|
||||
## 3.3.2 Изучение области действия обьектов в модулях (пример 2)
|
||||
|
||||
В модуль Mod0 была добавлена функция печати переменных t и expi, которые есть в Mod2.
|
||||
|
||||
```py
|
||||
#Модуль Mod0
|
||||
import Mod1
|
||||
print('perm1=',Mod1.perm1)
|
||||
from Mod2 import alpha as al
|
||||
tt=al()
|
||||
print('tt=',tt)
|
||||
from Mod2 import beta
|
||||
qq=beta(float(tt))
|
||||
print('qq=',qq)
|
||||
print(t, expi)
|
||||
```
|
||||
При запуске модуля на моменте печати этих переменных была выдана ошибка.
|
||||
|
||||
```py
|
||||
Mod1:Введите значение = 5
|
||||
Mod1:Значение perm1= 5
|
||||
perm1= 5
|
||||
****ALPHA****
|
||||
Значение t=7
|
||||
tt= 7
|
||||
qq= 3553321280.847041
|
||||
Traceback (most recent call last):
|
||||
File "C:\Users\Лиза\OneDrive\Desktop\python-labs\TEMA8\Mod0.py", line 10, in <module>
|
||||
print(t, expi)
|
||||
NameError: name 't' is not defined. Did you mean: 'tt'?
|
||||
```
|
||||
|
||||
## 3.3.3 Изучение области действия обьектов в модулях (пример 3)
|
||||
|
||||
В модуле Mod0 были добавлены инструкции, где переменная perm1 была увеличена в 3 раза и напечатана
|
||||
|
||||
```py
|
||||
#Модуль Mod0
|
||||
import Mod1
|
||||
print('perm1=',Mod1.perm1)
|
||||
from Mod2 import alpha as al
|
||||
tt=al()
|
||||
print('tt=',tt)
|
||||
from Mod2 import beta
|
||||
qq=beta(float(tt))
|
||||
print('qq=',qq)
|
||||
perm1 = Mod1.perm1*3
|
||||
print("perm1*3= ", perm1)
|
||||
```
|
||||
|
||||
При запуске модуля напечаталась переменная perm1 умноженная на 3. Так как эта переменная класса строка, то строка была повторена трижды и сформирована новая строка.
|
||||
|
||||
```py
|
||||
Mod1:Введите значение = 4
|
||||
Mod1:Значение perm1= 4
|
||||
perm1= 4
|
||||
****ALPHA****
|
||||
Значение t=3
|
||||
tt= 3
|
||||
qq= 12391.647807916694
|
||||
perm1*3= 444
|
||||
```
|
||||
|
||||
## 3.3.4 Изучение области действия обьектов в модулях (пример 4)
|
||||
|
||||
В командной строке после выполнения главного модуля была произведена попытка изменить переменные perm1, tt, qq. В итоге tt и qq изменились, а при обращении к perm1 была выведена ошибка.
|
||||
|
||||
```py
|
||||
================= RESTART: C:\Users\Лиза\OneDrive\Desktop\python-labs\TEMA8\Mod0.py ================
|
||||
Mod1:Введите значение = 5
|
||||
Mod1:Значение perm1= 5
|
||||
perm1= 5
|
||||
****ALPHA****
|
||||
Значение t=7
|
||||
tt= 7
|
||||
qq= 3553321280.847041
|
||||
>>>perm1 = perm1*2
|
||||
Traceback (most recent call last):
|
||||
File "<pyshell#5>", line 1, in <module>
|
||||
perm1 = perm1*2
|
||||
NameError: name 'perm1' is not defined
|
||||
>>>tt = tt*2
|
||||
>>>tt
|
||||
'77'
|
||||
>>>qq = qq*2
|
||||
>>>qq
|
||||
7106642561.694082
|
||||
```
|
||||
|
||||
## 4 Завершение работы в IDLE
|
||||
|
||||
Был завершен сеанс в среде IDLE.
|
||||
Ссылка в новой задаче
Block a user