From cb5f1caaef28e3596044fc1bab3bc86ada5f754d Mon Sep 17 00:00:00 2001 From: SimankovBV Date: Sat, 25 Oct 2025 12:44:25 +0300 Subject: [PATCH] Task 1:Tema 5 --- TEMA5/Figure_1.png | Bin 0 -> 30674 bytes TEMA5/Figure_2.png | Bin 0 -> 19481 bytes TEMA5/report.md | 423 +++++++++++++++++++++++++++++++++++++++++++++ TEMA5/task.md | 126 ++++++++++++++ 4 files changed, 549 insertions(+) create mode 100644 TEMA5/Figure_1.png create mode 100644 TEMA5/Figure_2.png create mode 100644 TEMA5/report.md create mode 100644 TEMA5/task.md diff --git a/TEMA5/Figure_1.png b/TEMA5/Figure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..b9b7738bc0f648ff2fb5f5f630eb0e08f39126d2 GIT binary patch literal 30674 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 literal 0 HcmV?d00001 diff --git a/TEMA5/Figure_2.png b/TEMA5/Figure_2.png new file mode 100644 index 0000000000000000000000000000000000000000..94dbe2d09782445e5c0160ad639c8bd7db6679f3 GIT binary patch literal 19481 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 i@W>> import os +>>> os.chdir('C:\\Users\\Bogdan\\python-labs\\TEMA5') +``` + +Управляющие инструкции, как и в других языках программирования, используются в Python для разветвления линий потока. Их применение имеет как сходство, так и заметные отличия по сравнению с другими языками программирования. В программах на Python они применяются по следующей общей схеме: +<Управляющая инструкция>: +<отступы><Блок инструкций> + +Здесь управляющая инструкция начинается зарезервированными словами, такими как if, while, for… и дополняется логическим выражением, со значением True или False. +Блок инструкций – это совокупность инструкций на языке Python, возможно, включающая вложенные управляющие инструкции. Относительно управляющей инструкции блок инструкций сдвигается влево с использованием одинаковых отступов, задаваемых либо некоторым числом пробелов, либо одной или несколькими табуляциями. Величина отступа задаётся в настройках среды (Indentation Width). По умолчанию – это 4 пробела или 1 табуляция. + + + # 2. Ветвление по условию – управляющая инструкция if. +Общее правило написания: +if <условие>: +<отступы><Блок инструкций, выполняемый, если условие истинно> + [elif <условие2>: +<отступы><Блок инструкций2, выполняемый, если условие2 истинно> +] +[else: +< отступы><Блок инструкций3, выполняемый, если условие ложно> +] + +Условие задается в виде логического выражения, которое может принимать значение True или False. Блок инструкций может располагаться на нескольких строках. Отступы во всех строках блока должны быть одинаковыми по отношению к первому символу управляющей инструкции. Если имеется вложенная управляющая инструкция, то она вводится с таким же отступом, а все строки ее блоков – отступают по отношению к ее первому символу. Признак конца блока – отсутствие отступов в очередной строке или ввод пустой строки. +Если в Блоке инструкций только одна инструкция, её можно записывать без отступов сразу за знаком «:». + +```py +>>> porog=50 +>>> rashod1=200 +>>> rashod2=30 +>>> if rashod1>=porog: +... dohod=12 +... elif rashod2==porog: +... dohod=0 +... else: +... dohod=-8 # Это выполняется, если ни первое, ни второе условия не были истинными +... +... +>>> dohod +12 +``` + +В конструкции if-elif-else всегда выполняется только одна ветвь. Даже если условие +в elif также истинно, оно не будет проверено и, соответственно, не выполнится, если до +этого уже выполнился блок if. Это связано с тем, что после выполнения любого блока +инструкции (будь то if, elif или else) остальные части конструкции игнорируются. + +```py +>>> rashod2=4 +>>> porog=4 +>>> rashod1=8 +>>> if porog==3: +... dohod=1 +... elif porog==4: +... dohod=2 # Верно +... elif porog==5: +... dohod=3 # Игнорируется +... else: +... dohod=0 # Игнорируется +... +... +>>> dohod +2 +``` + +Условные инструкции могут записываться также в одну строку в операторе присваивания по следующей схеме: +<Объект>=<значение 1> if <условие> else <значение 2> +или ещё: +if <условие>: <инструкция1>[;<инструкция2>….] + +```py +>>> dohod=2 if porog>=4 else 0 +>>> dohod +2 +>>> if porog>=5 : rashod1=6; rashod2=0 # +... +>>> rashod1 # Условие не выполнено, значения прежние +8 +>>> rashod2 +4 +``` + + + # 3. Цикл по перечислению – управляющая инструкция for. +Общее правило написания: +for <Объект-переменная цикла> in <объект>: +<отступы><Блок инструкций 1 – тело цикла> +[else: +< отступы ><Блок инструкций 2 – если в цикле не сработал break>] + +Здесь <объект> - любой определенный до начала цикла объект из классов строка, список, кортеж, множество, словарь. +<Объект-переменная цикла> - объект, в качестве значений которого поочередно будут задаваться элементы объекта, которые могут быть объектами любого типа. +<Блок инструкций 1 – тело цикла> - совокупность инструкций, которая может содержать или не содержать инструкцию break, вызывающую досрочное завершение цикла при некоторых условиях. Блок инструкций 1 обычно выполняется многократно по мере того, как объект-переменная цикла принимает значения из сложного объекта. Если в цикле имеется необязательная часть: else и Блок инструкций 2, то он будет выполняться перед завершением цикла только в том случае, если при выполнении цикла не было его прерывания по инструкции break. +Если в Блоке инструкций 1 или в Блоке инструкций 2 только одна инструкция, то её можно записывать без отступов сразу за двоеточием. + + ## 3.1 Простой цикл +```py +>>> temperatura=5 +>>> for i in range(3,18,3): +... temperatura+=i +... +... +>>> temperatura +50 +``` + +Также можно увидеть, какое значение имеет переменная i на каждой итерации: +```py +>>> for i in range(3,18,3): +... i +... temperatura+=i +... +... +3 +6 +9 +12 +15 +``` + + ## 3.2 Более сложный цикл +```py +>>> 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, и объект, изменяющийся внутри цикла. Если список изменяется во время цикла, это влияет на последующие итерации. +(При этом else в данном случае относится к if, а не к for. + +Теперь выполним чуть-чуть отличающуюся совокупность операций: +```py +>>> 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, и список, изменяющийся внутри цикла - это объекты, имеющие разные адреса. Цикл итерируется по копии, но изменяет оригинальный список sps. Итерации происходят только 4 раза (по 4 элементам в копии), независимо от того, как растет оригинальный список. + + ## 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) +... +... +321 +``` + +Программа вывела ответ, потому что сработал else, и за все десять итераций цикла так и не успел выполниться break по условию if. Блок else выполняется только если цикл завершился нормально (не был прерван break). Если срабатывает break, блок else пропускается. + +Попробуем обнулить список и запустить программу ещё раз: +```py +>>> for i in range(10): +... sps5.append(rn.randint(1,100)) +... ss=sum(sps5) +... if ss>500: break +... else: print(ss) +... +>>> ss +521 +>>> sps5 +[97, 78, 21, 54, 32, 74, 62, 60, 10, 33] +``` + +После того, как прошло девять итераций, сумма элементов списка уже была больше 500, поэтому +цикл закончился из-за if, а не из-за окончания диапазона range(10). + + ## 3.4 Пример с символьной строкой +```py +>>> stroka='Это – автоматизированная система' +>>> stroka1="" +>>> for ss in stroka: +... stroka1+=" "+ss +... +... +>>> stroka1 +' Э т о – а в т о м а т и з и р о в а н н а я с и с т е м а' +``` +Переменная ss проходит по всему строковому объекту, на каждой итерации принимая значение +одного знака. Этот знак с предшествующим пробелом дописывается в конец другой, изначально +пустой строки. Цикл закончится, когда закончится исходная строка. + + ## 3.5 Запись цикла в строке +Пример: создание списка с синусоидальным сигналом. +```py +>>> 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, label='Синусоидальный сигнал', color = 'green') +[] +>>> pylab.show() +``` +Здесь используется конструкция list comprehention (генератор списков). В общем +виде она выглядит так: +<итоговый список> = [<выражение> for <элемент> in <исходный объект> if <условие>] + +Полученный график сохранен в файле Figure_1 +![Синусоида](Figure_1.png) + + + # 4. Цикл «пока истинно условие» – управляющая инструкция while. +Общее правило написания: +while <Условие>: +<отступы><Блок инструкций 1 – тело цикла> +[else: +<отступы><Блок инструкций 2 – если в цикле не сработал break>] +Здесь <Условие> - некоторое логическое выражение. Если на очередном витке цикла оно принимает значение True (или не равно 0), то выполняется Блок инструкций 1. При этом, если в этом блоке присутствует инструкция break и она будет выполнена, то цикл завершается, иначе – переходит к новому витку цикла. В блоке инструкций 1 могут быть изменены значения объектов, входящих в Условие и его значение тоже может измениться. Если же его значением останется True, то вновь выполняется Блок инструкций 1 и т.д. Если в цикле присутствует Блок инструкций 2, то он будет выполнен, если завершение цикла произошло не по инструкции break, а по значению False (или значению =0) условия. + + ## 4.1 Цикл со счетчиком. +```py +>>> rashod=300 +>>> while rashod: +... print("Расход=",rashod) +... rashod-=50 +... +... +Расход= 300 +Расход= 250 +Расход= 200 +Расход= 150 +Расход= 100 +Расход= 50 +``` +Мы не видим в выводе: когда rashod = 0, потому что цикл уже завершился. Все числа, кроме нуля, при конвертации в логический тип данных имеют логическое значение True и только ноль имеет значение False. +Сравниваемая в управляющей инструкции переменная уменьшается в самом цикле, поэтому, когда +строка со сравнением обнаружит 0, то воспримет это как False, и действия по выводу +и уменьшению числа выполняться больше не будут. + + ## 4.2 Пример с символьной строкой +```py +>>> import math +>>> stroka='Расчет процесса в объекте регулирования' +>>> i=0 +>>> sps2=[] +>>> while i>> pylab.show() +``` +График сохранен под именем Figure_2. +![График](Figure_2.png) + + ## 4.3 Определение, является ли число простым (делится только на самого себя или 1) +```py +>>> chislo=267 #Проверяемое число +>>> kandidat = chislo // 2 # Для значений chislo > 1 +>>> while kandidat > 1: +... if chislo%kandidat == 0: # Остаток от деления +... print(chislo, ' имеет множитель ', kandidat) +... break # else выполняться не будет +... kandidat -= 1 +... else: # При завершении цикла без break +... print(chislo, ' является простым!') +... +267 имеет множитель 89 +``` + +Программа работает так: переменная kandidat отвечает за потенциальный делитель заданного +числа. Изначально мы задаем половину от заданного числа, потому что у числа не может быть +делителя большего, чем половина от него. Далее мы последовательно уменьшаем потенциальный +множитель, каждый раз проверяя, получилось ли поделить без остатка. Если получилось, то +число непростое, и цикл можно прекращать досрочно. + +Дополним программу так, чтобы она проверяла все числа от 250 до 300. +```py +>>> chislo = [x for x in range (250, 301)] +>>> for a in chislo: +... kandidat = a // 2 +... while kandidat > 1: +... if a % kandidat == 0: +... print(a, ' имеет множитель ', kandidat) +... break +... kandidat -= 1 +... else: print(a, " является простым!") +... +... +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 +Она используется, когда надо при определенном условии не завершить весь цикл, а завершить +только текущую итерацию. + +Пример (вывод нечётных чисел): +```py +>>> for i in range(1, 11): +... if i % 2 == 0: # Если число четное +... continue # Пропускаем оставшуюся часть цикла +... print(i) +... +... +1 +3 +5 +7 +9 +``` + + # 5. Завершение сеанса работы с IDLE \ No newline at end of file diff --git a/TEMA5/task.md b/TEMA5/task.md new file mode 100644 index 0000000..1158672 --- /dev/null +++ b/TEMA5/task.md @@ -0,0 +1,126 @@ + # Общее контрольное задание по теме 5 +Симанков Богдан, А-02-23 + + # Задание: +Реализовать, записать в текстовый файл программы и результаты их выполнения при решении следующих задач: + +1. Для заданной символьной строки с англоязычным текстом (его можно заимствовать из помощи) определите порядковый номер каждой буквы в английском алфавите. + +2. Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с отсутствующим словом). + +3. Создайте список студентов вашей группы (3-4 фамилии) и список их средних баллов в летней сессии – в порядке перечисления студентов в первом списке. Создайте еще 2 аналогичных списка для тех же студентов, но в другом порядке, по зимней сессии. Напишите инструкции, позволяющие по указанной (запрошенной и введенной) фамилии студента вывести его средние баллы по двум сессиям. + + # Решение +1. +```py +>>> stroka="Enter help below or click Help above for more information." +>>> abc = "abcdefghijklmnopqrstuvwxyz" +>>> for x in stroka: +... small = x.lower() +... if small in abc: +... numbers = abc.find(small)+1 +... print("Буква",x, "с порядковым номером", numbers) +... +Буква E с порядковым номером 5 +Буква n с порядковым номером 14 +Буква t с порядковым номером 20 +Буква e с порядковым номером 5 +Буква r с порядковым номером 18 +Буква h с порядковым номером 8 +Буква e с порядковым номером 5 +Буква l с порядковым номером 12 +Буква p с порядковым номером 16 +Буква b с порядковым номером 2 +Буква e с порядковым номером 5 +Буква l с порядковым номером 12 +Буква o с порядковым номером 15 +Буква w с порядковым номером 23 +Буква o с порядковым номером 15 +Буква r с порядковым номером 18 +Буква c с порядковым номером 3 +Буква l с порядковым номером 12 +Буква i с порядковым номером 9 +Буква c с порядковым номером 3 +Буква k с порядковым номером 11 +Буква H с порядковым номером 8 +Буква e с порядковым номером 5 +Буква l с порядковым номером 12 +Буква p с порядковым номером 16 +Буква a с порядковым номером 1 +Буква b с порядковым номером 2 +Буква o с порядковым номером 15 +Буква v с порядковым номером 22 +Буква e с порядковым номером 5 +Буква f с порядковым номером 6 +Буква o с порядковым номером 15 +Буква r с порядковым номером 18 +Буква m с порядковым номером 13 +Буква o с порядковым номером 15 +Буква r с порядковым номером 18 +Буква e с порядковым номером 5 +Буква i с порядковым номером 9 +Буква n с порядковым номером 14 +Буква f с порядковым номером 6 +Буква o с порядковым номером 15 +Буква r с порядковым номером 18 +Буква m с порядковым номером 13 +Буква a с порядковым номером 1 +Буква t с порядковым номером 20 +Буква i с порядковым номером 9 +Буква o с порядковым номером 15 +Буква n с порядковым номером 14 +``` + +2. +```py +>>> text="Создайте список со словами из задания данного пункта Для этого списка определите есть ли в н`м некоторое заданное значение и выведите соответствующее сообщение либо о нахождении элемента либо о его отсутствии в списке проверить как с имеющимся так и с отсутствующим словом" +>>> spis=text.split(" ") +>>> spis +['Создайте', 'список', 'со', 'словами', 'из', 'задания', 'данного', 'пункта', 'Для', 'этого', 'списка', 'определите', 'есть', 'ли', 'в', 'н`м', 'некоторое', 'заданное', 'значение', 'и', 'выведите', 'соответствующее', 'сообщение', 'либо', 'о', 'нахождении', 'элемента', 'либо', 'о', 'его', 'отсутствии', 'в', 'списке', 'проверить', 'как', 'с', 'имеющимся', 'так', 'и', 'с', 'отсутствующим', 'словом'] + +>>> slovo="сообщение" # Цикл с имеющимся словом в списке +>>> for x in spis: +... if x ==slovo: +... print ("Такое слово есть :",slovo) +... break +... else: +... print ("Такого слова нет") +... +... +Такое слово есть : сообщение + +>>> slovo="нет" # Цикл без слова в списке +>>> for x in spis: +... if x ==slovo: +... print ("Такое слово есть :",slovo) +... break +... else: +... print ("Такого слова нет") +... +... +Такого слова нет +``` + +3. +```py +>>> spis=['Savin', 'Volodin', 'Simankov'] +>>> spis1=[3.0, 2.5, 4.2] +>>> spis_1=[2.5, 3.5, 4] +>>> spis_0=['Volodin', 'Simankov', 'Savin'] +>>> student = input("Введите фамилию: ") +Введите фамилию: Simankov +>>> if student in spis: +>>> if (student in spis) and (student in spis_0): +... index_summer=spis.index(student) # Индекс студента по летней сессии +... ball_summer=spis1[index_summer] # Балл студента по летней сессии +... index_winter=spis_0.index(student) # Индекс студента по зимней сессии +... ball_winter=spis_1[index_winter] # Балл студента по зимней сессии +... print("Студент - ",student) +... print("Летняя сессия: ",ball_summer) +... print("Зимняя сессия: ",ball_winter) +... else: print("Студент не найден") +... +Студент - Simankov +Летняя сессия: 4.2 +Зимняя сессия: 3.5 +``` \ No newline at end of file