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

8.7 KiB

Отчёт по Теме 5

Ходюк Максим Романович А-01-23

2. Ветвление по условию

Применил примеры использования конструкции if:

porog = 4
rashod1 = 1
rashod2 = 3
if rashod1>=porog:
		dohod=12
elif rashod2==porog:
		dohod=0
else:
		dohod=-8


dohod
-8
rashod1 = 3
rashod2 = 4
if rashod1>=3 and rashod2==4:
		dohod=rashod1
		if rashod2==porog or rashod1<rashod2:
			dohod=porog

dohod
4
if porog==3:
		dohod=1
elif porog==4:
		dohod=2
elif porog==5:
		dohod=3
else:
		dohod=0

dohod
2

dohod=2 if porog>=4 else 0
dohod
2
if porog>=5 : rashod1=6; rashod2=0

rashod1;rashod2
3
4

3. Цикл по перечислению

3.1.Простой цикл

temperatura=5
for i in range(3,18,3):
	temperatura+=i

temperatura
50

3.2. Более сложный цикл

sps=[2,15,14,8]
for k in sps:
	if len(sps)<=10:sps.append(sps[0])
	else:break

sps
[2, 15, 14, 8, 2, 2, 2, 2, 2, 2, 2]
sps=[2,15,14,8]
for k in sps[:]:
	if len(sps)<=10:sps.append(sps[0])
	else:break

sps
[2, 15, 14, 8, 2, 2, 2, 2]

3.3. Пример: создание списка с 10 целыми случайными числами из диапазона от 1 до 100

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)

ss
537

sps5=[]
for i in range(10):
	sps5.append(rn.randint(1,100))
	ss=sum(sps5)
	if ss>500: break
else:
	print(ss)

	
ss
531
sps5=[]
for i in range(10):
	sps5.append(rn.randint(1,100))
	ss=sum(sps5)
	if ss>500: break
else:
	print(ss)

	
410

3.4. Пример с символьной строкой

stroka='Это – автоматизированная система'
stroka1=""
for ss in stroka:
	stroka1+=" "+ss


stroka1
' Э т о   –   а в т о м а т и з и р о в а н н а я   с и с т е м а'

3.5. Запись цикла в строке

import math
sps2=[math.sin(i*math.pi/5+2) for i in range(100)]
sps2
[0.9092974268256817, 0.49103209793281005, -0.11479080280322804, -0.6767675184643197, -0.9802420445539634, -0.9092974268256817, -0.49103209793281016, 0.11479080280322791, 0.6767675184643196, 0.9802420445539634, 0.9092974268256818, 0.4910320979328103, -0.1147908028032278, -0.6767675184643196, -0.9802420445539632, -0.9092974268256818, -0.4910320979328104, 0.11479080280322768, 0.6767675184643195, 0.9802420445539632, 0.9092974268256819, 0.4910320979328105, -0.11479080280322579, -0.6767675184643194, -0.9802420445539632, -0.9092974268256819, -0.4910320979328106, 0.11479080280322743, 0.6767675184643193, 0.9802420445539632, 0.909297426825682, 0.49103209793281066, -0.1147908028032273, -0.6767675184643192, -0.9802420445539632, -0.909297426825682, -0.4910320979328108, 0.11479080280322719, 0.6767675184643192, 0.9802420445539631, 0.9092974268256822, 0.491032097932814, -0.11479080280322707, -0.676767518464319, -0.9802420445539625, -0.9092974268256822, -0.491032097932811, 0.11479080280323047, 0.6767675184643189, 0.9802420445539625, 0.9092974268256822, 0.4910320979328142, -0.11479080280322682, -0.6767675184643215, -0.9802420445539631, -0.9092974268256808, -0.4910320979328112, 0.11479080280322317, 0.6767675184643187, 0.9802420445539624, 0.9092974268256823, 0.4910320979328082, -0.11479080280322658, -0.6767675184643213, -0.980242044553963, -0.9092974268256838, -0.49103209793281144, 0.11479080280322293, 0.6767675184643186, 0.9802420445539637, 0.9092974268256824, 0.49103209793280844, -0.11479080280322633, -0.6767675184643158, -0.980242044553963, -0.9092974268256839, -0.49103209793281166, 0.11479080280322974, 0.6767675184643184, 0.9802420445539637, 0.9092974268256825, 0.4910320979328149, -0.11479080280321903, -0.6767675184643209, -0.9802420445539629, -0.909297426825681, -0.4910320979328119, 0.11479080280322244, 0.6767675184643129, 0.9802420445539636, 0.9092974268256826, 0.49103209793281505, -0.11479080280322584, -0.6767675184643155, -0.9802420445539644, -0.9092974268256812, -0.49103209793281205, 0.1147908028032222, 0.6767675184643127, 0.980242044553965]

Отображение сигнала на графике:

pylab.plot(range(100),sps2)
[<matplotlib.lines.Line2D object at 0x0000027FA0ABEFD0>]
pylab.show()

График сохранён в файле Figure1.png

4. Цикл "пока истинно условие"

4.1. Цикл со счетчиком

rashod=300
while rashod:
	print("Расход=",rashod)
	rashod-=50

Расход= 300
Расход= 250
Расход= 200
Расход= 150
Расход= 100
Расход= 50

4.2 Пример с символьной строкой

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

Значение в момент 0 = 0.0
Значение в момент 1 = 0.049958374957880025
Значение в момент 2 = 0.09966799462495568
Значение в момент 3 = 0.14888503362331795
Значение в момент 4 = 0.197375320224904
Значение в момент 5 = 0.2449186624037092
Значение в момент 6 = 0.2913126124515909
Значение в момент 7 = 0.3363755443363322
Значение в момент 8 = 0.3799489622552249
Значение в момент 9 = 0.421899005250008
Значение в момент 10 = 0.4621171572600098
Значение в момент 11 = 0.5005202111902354
Значение в момент 12 = 0.5370495669980353
Значение в момент 13 = 0.5716699660851172
Значение в момент 14 = 0.6043677771171636
Значение в момент 15 = 0.6351489523872873
Значение в момент 16 = 0.6640367702678489
Значение в момент 17 = 0.6910694698329307
Значение в момент 18 = 0.7162978701990245
Значение в момент 19 = 0.7397830512740043
Значение в момент 20 = 0.7615941559557649
Значение в момент 21 = 0.7818063576087741
Значение в момент 22 = 0.8004990217606297
Значение в момент 23 = 0.8177540779702878
Значение в момент 24 = 0.8336546070121553
Значение в момент 25 = 0.8482836399575129
Значение в момент 26 = 0.8617231593133063
Значение в момент 27 = 0.874053287886007
Значение в момент 28 = 0.8853516482022625
Значение в момент 29 = 0.8956928738431645
Значение в момент 30 = 0.9051482536448664
Значение в момент 31 = 0.9137854901178277
Значение в момент 32 = 0.9216685544064713
Значение в момент 33 = 0.9288576214547277
Значение в момент 34 = 0.935409070603099
Значение в момент 35 = 0.9413755384972874
Значение в момент 36 = 0.9468060128462683
Значение в момент 37 = 0.9517459571646616
Значение в момент 38 = 0.9562374581277391

Представление сигнала в виде графика:

import pylab
pylab.plot(range(39),sps2)
                     
[<matplotlib.lines.Line2D object at 0x0000027FA129E710>]
pylab.show()

График сохранён в файле Figure0.png

4.3. Определение, является ли число простым

chislo=267
kandidat =chislo // 2
while kandidat > 1:
	if chislo%kandidat == 0: 	# Остаток от деления
		print(chislo, ' имеет множитель ', kandidat)
		break 		# else выполняться не будет
	kandidat -= 1
else: 			# При завершении цикла без break
	print(chislo, ' является простым!')

267  имеет множитель  89

Дополнил программу, чтобы она выводила все простые числа в диапазоне от 250 до 300

for chislo in range(250,301):
    kandidat = chislo // 2
    while kandidat > 1:
        if chislo%kandidat == 0:
            break
        kandidat -= 1
    else: print(chislo, ' является простым!')

    
251  является простым!
257  является простым!
263  является простым!
269  является простым!
271  является простым!
277  является простым!
281  является простым!
283  является простым!
293  является простым!

Использование инструкции continue

print("Нечетные числа от 1 до 10:")
Нечетные числа от 1 до 10:
for i in range(1, 11):
    if i % 2 == 0:  
        continue    
    print(i)

    
1
3
5
7
9