Ksenia 1 месяц назад
Родитель ec044da6d5
Сommit b7520864bd

Двоичные данные
TEMA5/photo1.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 82 KiB

Двоичные данные
TEMA5/photo2.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 46 KiB

@ -0,0 +1,139 @@
# Тема 5 < Зеленкина Ксения Михайловна>
# 2.
# Пример 1.
porog, rashod1, rashod2 = 3, 120, 50
if rashod1>=porog:
dohod=12
elif rashod2==porog:
dohod=0
else:
dohod=-8
print(dohod)
# Пример 2.
if rashod1>=3 and rashod2==4:
dohod=rashod1
if rashod2==porog or rashod1<rashod2:
dohod=porog
print(dohod)
# Пример 3
if porog==3:
dohod=1
elif porog==4:
dohod=2
elif porog==5:
dohod=3
else:
dohod=0
print(dohod)
# В одну строчку
# Пример 1
dohod=2 if porog>=4 else 0
print(dohod)
# Пример 2
porog = 10
if porog>=5 : rashod1=6; rashod2=0
print(rashod1, rashod2)
# 3.1
temperatura=5
for i in range(3,18,3):
temperatura+=i
print(temperatura)
# 3.2
# Пример 1
sps=[2,15,14,8]
for k in sps:
if len(sps)<=10:sps.append(sps[0])
else:break
print(sps)
#Пример 2
sps=[2,15,14,8]
for k in sps[:]:
if len(sps)<=10:sps.append(sps[0])
else:break
print(sps)
# 3.3
import random as rn
sps5=[]
for i in range(10):
sps5.append(rn.randint(1,100))
ss=sum(sps5)
if ss>500: break
else:
print(ss)
# 3.4
stroka='Это – автоматизированная система'
stroka1=""
for ss in stroka:
stroka1+=" "+ss
print(stroka1)
# 3.5.
import math
import matplotlib.pyplot as plt
sps2=[math.sin(i*math.pi/5+2) for i in range(100)]
x = list(range(100))
plt.figure(figsize=(12, 6))
plt.plot(x, sps2, 'b-', linewidth=1, label='sin(i*π/5 + 2)')
plt.title('График сигнала: sin(i*π/5 + 2)')
plt.xlabel('i (индекс)')
plt.ylabel('Значение sin(i*π/5 + 2)')
plt.show()
# 4.1
rashod=300
while rashod:
print("Расход=",rashod)
rashod-=50
# 4.2
import math
import matplotlib.pyplot as plt
stroka='Расчет процесса в объекте регулирования'
i=0
sps2=[]
while i<len(stroka):
r=1-2/(1+math.exp(0.1*i))
sps2.append(r)
print('Значение в момент',i,"=",r)
i+=1
plt.figure(figsize=(12, 6))
plt.plot(sps2, 'b-', linewidth=2, label='Выход инерционного звена')
plt.title('Сигнал на выходе инерционного звена')
plt.xlabel('Время (момент i)')
plt.ylabel('Значение r')
plt.grid(True, alpha=0.3)
plt.legend()
plt.show()
#4.3.
chislo=267 #Проверяемое число
kandidat =chislo // 2 # Для значений chislo > 1
while kandidat > 1:
if chislo%kandidat == 0: # Остаток от деления
print(chislo, ' имеет множитель ', kandidat)
break # else выполняться не будет
kandidat -= 1
else: # При завершении цикла без break
print(chislo, ' является простым!')
# Дополненный код
for chislo in range(250, 301):
kandidat = chislo // 2
while kandidat > 1:
if chislo % kandidat == 0:
break
kandidat -= 1
else:
print(chislo, 'является простым!')

@ -0,0 +1,263 @@
# Отчет по Теме 5
Зеленкина Ксения, А-02-23
## 1. Начало работы.
Запустила интерактивную оболочку IDLE и открыла окно текстового редактора, куда буду фиксировать мои дальнейшие действия.
## 2. Условный оператор.
Изучила ветвление по условию – управляющая инструкция __if__.
Задала некоторые числовые значения объектам __porog__, __rashod1__, __rashod2__. Выполните следующую операцию, определив значение __dohod__:
_Пример 1:_
```py
porog, rashod1, rashod2 = 3, 120, 50
if rashod1>=porog:
dohod=12
elif rashod2==porog:
dohod=0
else:
dohod=-8
print(dohod)
```
__Результат:__
```py
12
```
Выполним ещё одну операцию, определив значение __dohod__:
_Пример 2:_
```py
if rashod1>=3 and rashod2==4:
dohod=rashod1
if rashod2==porog or rashod1<rashod2:
dohod=porog
print(dohod)
```
__Результат:__
```py
12
```
Ещё одна операция с множественным ветвлением линий потока:
_Пример 3:_
```py
if porog==3:
dohod=1
elif porog==4:
dohod=2
elif porog==5:
dohod=3
else:
dohod=0
print(dohod)
```
__Результат:__
```py
1
```
Условные инструкции можно записываться также в одну строку в операторе присваивания. Изучим примеры:
_Пример 1:_
```py
dohod=2 if porog>=4 else 0
```
__Результат:__
```py
0
```
_Пример 2:_
```py
porog = 10
if porog>=5 : rashod1=6; rashod2=0
print(rashod1, rashod2)
```
__Результат:__
```py
6 0
```
## 3. Цикл по перечислению.
Цикл по перечислению – управляющая инструкция for.
#### 3.1.
Выполним простой цикл:
```py
temperatura=5
for i in range(3,18,3):
temperatura+=i
print(temperatura)
```
__Результат:__
```py
8
14
23
35
50
```
#### 3.2.
Выполним более сложный цикл:
```py
sps=[2,15,14,8]
for k in sps:
if len(sps)<=10:sps.append(sps[0])
else:break
print(sps)
```
__Результат:__
```py
[2, 15, 14, 8, 2, 2, 2, 2, 2, 2, 2]
```
Выполним чуть-чуть отличающуюся совокупность операций:
```py
sps=[2,15,14,8]
for k in sps[:]:
if len(sps)<=10:sps.append(sps[0])
else:break
print(sps)
```
__Результат:__
```py
[2, 15, 14, 8, 2, 2, 2, 2]
```
#### 3.3.
Пример: создание списка с 10 целыми случайными числами из диапазона от 1 до 100. При этом, если сумма чисел не превышает 500, эта сумма должна быть отображена на экране.
```py
import random as rn
sps5=[]
for i in range(10):
sps5.append(rn.randint(1,100))
ss=sum(sps5)
if ss>500: break
else:
print(ss)
```
__Результат:__
```py
1 раз: (пусто)
2 раз: (пусто)
3 раз: 316
```
Вывод значения __ss__ бывает не всегда, потому что блок __else__ относится к циклу __for__ и выполняется только если цикл не был прерван __break__.
#### 3.4.
Пример с символьной строкой
```py
stroka='Это – автоматизированная система'
stroka1=""
for ss in stroka:
stroka1+=" "+ss
print(stroka1)
```
__Результат:__
```py
Э т о – а в т о м а т и з и р о в а н н а я с и с т е м а
```
#### 3.5.
Запись цикла в строке. Пример: создание списка с синусоидальным сигналом:
```py
import math
import matplotlib.pyplot as plt
sps2=[math.sin(i*math.pi/5+2) for i in range(100)]
x = list(range(100))
plt.figure(figsize=(12, 6))
plt.plot(x, sps2, 'b-', linewidth=1, label='sin(i*π/5 + 2)')
plt.title('График сигнала: sin(i*π/5 + 2)')
plt.xlabel('i (индекс)')
plt.ylabel('Значение sin(i*π/5 + 2)')
plt.show()
```
__График:__
<img src = "./photo1.png" width="500" height="400" align="center">
## 4. Цикл «пока истинно условие»
Цикл «пока истинно условие» – управляющая инструкция __while__.
#### 4.1.
Цикл со счетчиком:
```py
rashod=300
while rashod:
print("Расход=",rashod)
rashod-=50
```
__Результат:__
```py
Расход= 300
Расход= 250
Расход= 200
Расход= 150
Расход= 100
Расход= 50
```
Цикл завершился, потому что условие __while rashod__: стало ложным, когда __rashod__ достиг нуля.
#### 4.2.
Пример с символьной строкой.
```py
import math
import matplotlib.pyplot as plt
stroka='Расчет процесса в объекте регулирования'
i=0
sps2=[]
while i<len(stroka):
r=1-2/(1+math.exp(0.1*i))
sps2.append(r)
print('Значение в момент',i,"=",r)
i+=1
plt.figure(figsize=(12, 6))
plt.plot(sps2, 'b-', linewidth=2, label='Выход инерционного звена')
plt.title('Сигнал на выходе инерционного звена')
plt.xlabel('Время (момент i)')
plt.ylabel('Значение r')
plt.grid(True, alpha=0.3)
plt.legend()
plt.show()
```
__График:__
<img src = "./photo2.png" width="500" height="400" align="center">
#### 4.3.
Определим, является ли число простым (делится только на самого себя или 1).
```py
chislo=267 #Проверяемое число
kandidat =chislo // 2
while kandidat > 1:
if chislo%kandidat == 0:
print(chislo, ' имеет множитель ', kandidat)
break # else выполняться не будет
kandidat -= 1
else: # При завершении цикла без break
print(chislo, ' является простым!')
```
__Результат:__
```py
267 имеет множитель 89
```
Дополним программу так, чтобы выявить все простые числа в диапазоне от 250 до 300.
```py
for chislo in range(250, 301):
kandidat = chislo // 2
while kandidat > 1:
if chislo % kandidat == 0:
break
kandidat -= 1
else:
print(chislo, 'является простым!')
```
__Результат:__
```py
251 является простым!
257 является простым!
263 является простым!
269 является простым!
271 является простым!
277 является простым!
281 является простым!
283 является простым!
293 является простым!
```
## Завершение работы.
Загрузка…
Отмена
Сохранить