diff --git a/TEMA5/Figure_1.png b/TEMA5/Figure_1.png new file mode 100644 index 0000000..a50ff66 Binary files /dev/null and b/TEMA5/Figure_1.png differ diff --git a/TEMA5/Figure_2.png b/TEMA5/Figure_2.png new file mode 100644 index 0000000..e7888cd Binary files /dev/null and b/TEMA5/Figure_2.png differ diff --git a/TEMA5/report.md b/TEMA5/report.md new file mode 100644 index 0000000..be4f7e0 --- /dev/null +++ b/TEMA5/report.md @@ -0,0 +1,326 @@ +# Отчет по теме 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