# Отчет по теме 5 Девятова Мария, А-03-23 ## 1 Запуск IDLE ## 2 Ветвление по условию – управляющая инструкция if На данном этапе используются блоки инструкций. Блок инструкций может располагаться на нескольких строках. Отступы во всех строках блока должны быть одинаковыми по отношению к первому символу управляющей инструкции. Если имеется вложенная управляющая инструкция, то она вводится с таким же отступом, а все строки ее блоков – отступают по отношению к ее первому символу. Если в блоке инструкций только одна инструкция, её можно записывать без отступов сразу за знаком «:». ``` porog=10; rashod1=4; rashod2=21 if rashod1>=porog: dohod=12 elif rashod2==porog: dohod=0 else: dohod=-8 dohod -8 if rashod1>=3 and rashod2==4: dohod=rashod1 if rashod2==porog or rashod1=4 else 0 dohod 2 if porog>=5 : rashod1=6; rashod2=0 rashod1; rashod2 6 0 ``` ## 3 Цикл по перечислению – управляющая инструкция for ### 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] ``` Нужно учитывать, что в первом случае происходит проход k по объекту sps, который в самом цикле расширяется (в него добавляются новые элементы), т.е. без условия if-else был бы получен бесконечный цикл, т.к. k бы никогда не доходил до конца списка. В случае, когда вместо объекта sps используется его срез (копия списка), проход k происходит по созданной копии. Т.к. длина созданной копии списка 4, то и было добавлено всего 4 элемента. ``` 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. При этом, если сумма чисел не превышает 500, эта сумма должна быть отображена на экране. Если сумма элементов превышает 500, то вывода не будет, что продемонстрировано в примерах ниже. ``` 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) 466 ``` ``` sps5=[] for i in range(10): sps5.append(rn.randint(1,100)) ss=sum(sps5) if ss>500: break else: print(ss) ss 562 ``` ### 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] import pylab pylab.plot(sps2) [] pylab.xlabel('время') Text(0.5, 0, 'время') pylab.ylabel('сигнал') Text(0, 0.5, 'сигнал') pylab.show() ``` ![Синусоидальный сигнал](Figure_1.png) ## 4 Цикл «пока истинно условие» – управляющая инструкция while. ### 4.1 Цикл со счетчиком. ``` rashod=300 while rashod: print("Расход=",rashod) rashod-=50 Расход= 300 Расход= 250 Расход= 200 Расход= 150 Расход= 100 Расход= 50 ``` Цикл выполняется, пока логическое значение rashod истинно, т.е. при преобразовании в логический тип объект имеет значение True. Это условие выполняется всегда, пока rashod != 0. Как только rashod приобрёл значение 0, при преобразовании в логический тип получаем False, поэтому при проверке условия на истинность rashod происходит выход из цикла. ### 4.2 Пример с символьной строкой. ``` import math stroka='Расчет процесса в объекте регулирования' i=0; sps2=[] while i