Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

263 строки
7.0 KiB
Markdown

# Отчет по Теме 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 является простым!
```
## Завершение работы.