From 416cf017ac54bc71e0b144531f0fcf63c0a0727b Mon Sep 17 00:00:00 2001 From: TimoshenkoAA Date: Sun, 5 Oct 2025 07:42:46 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=82=D1=87=D0=B5=D1=82=20=D0=B8=20?= =?UTF-8?q?=D0=BC=D0=B0=D1=82=D0=B5=D1=80=D0=B8=D0=B0=D0=BB=D1=8B=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=A2=D0=B5=D0=BC=D0=B5=205?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA5/Figure_1.png | Bin 0 -> 30674 bytes TEMA5/Figure_2.png | Bin 0 -> 18614 bytes TEMA5/report.md | 445 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 445 insertions(+) create mode 100644 TEMA5/Figure_1.png create mode 100644 TEMA5/Figure_2.png create mode 100644 TEMA5/report.md diff --git a/TEMA5/Figure_1.png b/TEMA5/Figure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..52d76d573731fea390a571d390489216e7567ab4 GIT binary patch literal 30674 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 import os +>>> os.chdir("C:/Users/mapon/OneDrive/Рабочий стол/ПО АС/ТЕМА5") +``` +## Пункт 2. Ветвление по условию (if) + +Общий вид выглядит так: + +if <условие>: +<отступы> <Блок инструкций, выполняемый, если условие истинно> + [elif <условие2>: +<отступы><Блок инструкций2, выполняемый, если условие2 истинно> +] +[else: +< отступы><Блок инструкций3, выполняемый, если условие ложно> +] + +Причем elif и else вместе или по отдельности могут отсуствовать. + +Пример: +``` +>>> porog = 6 +>>> rashod1 = 8 +>>> rashod2 = 5 +>>> if rashod1 >= porog: + dohod = 12 # Это выполняется, если rashod1 >= porog +elif rashod2 == porog: + dohod = 0 # Это выполняется, если первое условие ложно, но rashod2 == porog +else: + dohod = -8 # Это выполняется, если ни первое, ни второе условие не были истинными + +>>> dohod +12 +``` +Оператор rashod1 >= porog (например, в числах, 8 >= 5) возвращает логическое значение True, +поэтому будет выполняться блок инструкций, соответствующий этому условию. Важно понимать, +что в конструкции if-elif-else всегда выполняется только одна ветвь. Даже если условие +в elif также истинно, оно не будет проверено и, соответственно, не выполнится, если до +этого уже выполнился блок if. Это связано с тем, что после выполнения любого блока +инструкции (будь то if, elif или else) остальные части конструкции игнорируются. + +Перезададим некоторые значения и выполним другую управляющую инструкцию: +``` +>>> rashod2 = 4 +>>> porog = 4 +>>> if rashod1 >= 3 and rashod2 == 4: #Верно + dohod = rashod1 + if rashod2 == porog or rashod1 < rashod2: #Тоже верно + dohod = porog + +>>> dohod +4 +``` +В данном случае выполняются оба if, потому что один находится в блоке инструкций другого +вложенное условие). Вложенное условие будет проверяться в любом случае, если выполнилось +внешнее. +``` +>>> if porog == 3: #Неверно + dohod = 1 +elif porog == 4: #Верно + dohod = 2 +elif porog == 5: #Игнорируется + dohod = 3 +else: #Игнорируется + dohod = 0 + +>>> dohod +2 +``` +Еще одна форма записи условных управляющих инструкций - тернарный оператор (от лат. "тройной"): + +<Объект> = <значение 1> if <условие> else <значение 2> +``` +>>> dohod = 2 if porog >= 4 else 0 +>>> dohod +2 +``` +Если в блоке инструкций всего одна строка, можно записать всё в одну строку: +``` +>>> porog = 2 +>>> if porog >= 5 : rashod1 = 6; rashod2 = 0 + +>>> rashod1 +8 +>>> rashod2 +4 +``` +Поскольку сейчас значение porog было задано таким, чтобы не удовлетворять условию, то +эта строка полностью не была выполнена и не повлияла на значения переменных. Но в другом +случае: +``` +>>> porog = 7 +>>> if porog >= 5 : rashod1 = 6; rashod2 = 0 + +>>> rashod1 +6 +>>> rashod2 +0 +``` +Выполняется условие и выполняются инструкции. + +## Пункт 3. Цикл по перечислению (for) + +for <Объект-переменная цикла> in <объект>: +<отступы> <Блок инструкций 1 – тело цикла> +[else: +<отступы> <Блок инструкций 2 – если в цикле не сработал break>] + +В качестве объекта сойдёт любая коллекция или, например, диапазон range. Если сообщить +словарь, то будут перебираться его ключи. Если сообщить множество, перебор будет осуществлен, +но порядок будет неочевидным. + + +### Пункт 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] +``` +Как видно, в конец цикла добавляется двойка до тех пор, пока длина не превысит 10. Важно +понимать, что sps - это и объект, по которому проходит k, и объект, изменяющийся +внутри цикла. То есть k будет двигаться по циклу бесконечно, и выполнение останавливается +именно из-за условия if - else. +(При этом else в данном случае относится к if, а не к for (это можно понять не только по +смыслу, но и по табуляции) + +Рассмотрим другой вариант: +``` +>>> 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] +``` +Как видно, итог другой, и вот почему. Операция взятия среза sps[:] создает полную копию +исходного списка (грубо говоря, срез от начала до конца включительно). +Теперь список, по которому пробегается k, и список, изменяющийся внутри цикла - это объекты, +имеющие разные адреса. Это можно проверить: +``` +>>> id(sps) +1684034116672 +>>> id(sps[:]) +1684069134400 +``` +Следовательно, else не успеет сработать, потому что итерируемый в управляющей инструкции +объект окажется короче и завершит цикл раньше: + +### Пункт 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) +``` +Программа ничего не вывела. Посмотрим, почему именно: +``` +>>> ss +501 +>>> sps5 +[25, 66, 4, 30, 8, 97, 87, 11, 51, 57, 65] +``` +После того, как прошло одиннадцать итераций, сумма элементов списка уже была больше 500, поэтому +цикл закончился из-за if, а не из-за окончания диапазона range(10). + +Попробуем обнулить список и выполнить ту же программу еще раз: +``` +>>> sps5 = [] +>>> for i in range(10): + sps5.append(rn.randint(1,100)) + ss = sum(sps5) + if ss > 500: break +else: + print(ss) + +436 +``` +В этот раз программа вывела ответ самостоятельно, потому что сработал else, потому что +за все десять итераций цикла так и не успел выполниться break по условию if. + +Примечание: + Рассмотрим строку >>> import random as rn + Если мы попробуем вызвать функцию из этого модуля по ее исходному названию, ничего не + выйдет: +``` +>>> random.randint(4,7) +Traceback (most recent call last): + File "", line 1, in + random.randint(4,7) +NameError: name 'random' is not defined +``` +Так происходит потому, что на этапе преобразования программы в байт-код python связывает +модуль random, найденный где-то в каталогах, принадлежащих python, с именем rs. Модуль +random становится объектом в пространстве имен, создаётся ссылка на объект модуля random +и ему присваивается имя rn. Но имя random ему НЕ присваивается, поэтому обратиться к +методам и атрибутам по имени random нельзя. + + +### Пункт 3.4. Пример с символьной строкой +``` +>>> stroka = 'Это – автоматизированная система' +>>> stroka1 = "" +>>> for ss in stroka: + stroka1 += " " + ss + + +>>> stroka1 +' Э т о – а в т о м а т и з и р о в а н н а я с и с т е м а' +``` +Переменная ss проходит по всему строковому объекту, на каждой итерации принимая значение +одного знака. Этот знак с предшествующим пробелом дописывается в конец другой, изначально +пустой строки. Цикл закончится, когда закончится исходная строка. + +### Пункт 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] +``` +Такая конструкция называется list comprehention (генератор списков). В общем +виде она выглядит так: + +<итоговый список> = [<выражение> for <элемент> in <исходный объект> if <условие>] + +Эту синусоиду можно отобразить на графике: +``` +>>> import pylab +>>> pylab.plot(sps2, label='Синусоидальный сигнал', color = 'green') +[] +>>> pylab.show() +``` +Полученный график корректен и и сохранен в файле Figure_1 + + +## Пункт 4. Цикл "пока истинно условие" (while) + +Общий вид: +``` +while <Условие>: +<отступы><Блок инструкций 1 – тело цикла> +[else: +<отступы><Блок инструкций 2 – если в цикле не сработал break>] + +break и else работают аналогично предыдущему случаю. +``` +### Пункт 4.1. Цикл со счетчиком +``` +>>> rashod = 300 +>>> while rashod: + print("Расход =",rashod) + rashod -= 50 + +Расход = 300 +Расход = 250 +Расход = 200 +Расход = 150 +Расход = 100 +Расход = 50 +``` +Как именно произошло завершение цикла? Нужно вспомнить, что все числа, кроме нуля, при +конвертации в логический тип данных имеют логическое значение True: +``` +>>> bool(50) +True +``` +И только нуль имеет значение False: +``` +>>> bool(0) +False +``` +Сравниваемая в управляющей инструкции переменная уменьшается в самом цикле, поэтому, когда +строка со сравнением обнаружит 0, то воспримет это как False, и действия по выводу +и уменьшению числа выполняться больше не будут. + +### Пункт 4.2. Пример с символьной строкой +``` +>>> import math +>>> stroka='Расчет процесса в объекте регулирования' +>>> i=0 +>>> sps2=[] +>>> while i>> pylab.show() +``` +График сохранен под именем Figure_2. + + +### Пункт 4.3. Определение, является ли число простым (делится только на самого себя или 1). +``` +>>> chislo = 267 +>>> kandidat = chislo // 2 +>>> while kandidat > 1: + if chislo % kandidat == 0: + print(chislo, ' имеет множитель ', kandidat) + break + kandidat -= 1 +else: + print(chislo, ' является простым!') + + +267 имеет множитель 89 +``` +Программа работает так: переменная kandidat отвечает за потенциальный делитель заданного +числа. Изначально мы задаем половину от заданного числа, потому что у числа не может быть +делителя большего, чем половина от него. Далее мы последовательно уменьшаем потенциальный +множитель, каждый раз проверяя, получилось ли поделить без остатка. Если получилось, то +число непростое, и цикл можно прекращать досрочно. Если цикл отработал до конца, не +прервавшись, то число простое. + +Дополниим программу так, чтобы она проверяла все числа от 250 до 300. +``` +>>> chislo = [x for x in range (250, 301)] +>>> for now in chislo: + kandidat = now // 2 + while kandidat > 1: + if now % kandidat == 0: + print(now, ' имеет множитель ', kandidat) + break + kandidat -= 1 + else: #ОБЯЗАТЕЛЬНО относится не к if и не к for, а к while + print(now, " является простым!") + + +250 имеет множитель 125 +251 является простым! +252 имеет множитель 126 +253 имеет множитель 23 +254 имеет множитель 127 +255 имеет множитель 85 +256 имеет множитель 128 +257 является простым! +258 имеет множитель 129 +259 имеет множитель 37 +260 имеет множитель 130 +261 имеет множитель 87 +262 имеет множитель 131 +263 является простым! +264 имеет множитель 132 +265 имеет множитель 53 +266 имеет множитель 133 +267 имеет множитель 89 +268 имеет множитель 134 +269 является простым! +270 имеет множитель 135 +271 является простым! +272 имеет множитель 136 +273 имеет множитель 91 +274 имеет множитель 137 +275 имеет множитель 55 +276 имеет множитель 138 +277 является простым! +278 имеет множитель 139 +279 имеет множитель 93 +280 имеет множитель 140 +281 является простым! +282 имеет множитель 141 +283 является простым! +284 имеет множитель 142 +285 имеет множитель 95 +286 имеет множитель 143 +287 имеет множитель 41 +288 имеет множитель 144 +289 имеет множитель 17 +290 имеет множитель 145 +291 имеет множитель 97 +292 имеет множитель 146 +293 является простым! +294 имеет множитель 147 +295 имеет множитель 59 +296 имеет множитель 148 +297 имеет множитель 99 +298 имеет множитель 149 +299 имеет множитель 23 +300 имеет множитель 150 +``` +### Пункт 4.4. Инструкция continue. + +Она используется, когда надо при определенном условии не завершить весь цикл, а завершить +только текущую итерацию. + +Пример (вывести только положительные числа): +``` +>>> nums = [rn.randint(-30, 30) for x in range(15)] +>>> nums +[-11, -1, 25, -11, 12, 24, -28, -16, -2, 15, -25, -2, -15, 9, -4] + +>>> for now in nums: + if now < 0: continue + print(now, " > 0") +else: print("все числа обработаны") + +25 > 0 +12 > 0 +24 > 0 +15 > 0 +9 > 0 +все числа обработаны +```