форкнуто от main/python-labs
Родитель
ec044da6d5
Сommit
b7520864bd
|
После Ширина: | Высота: | Размер: 82 KiB |
|
После Ширина: | Высота: | Размер: 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 является простым!
|
||||
```
|
||||
|
||||
## Завершение работы.
|
||||
Загрузка…
Ссылка в новой задаче