diff --git a/TEMA5/1.png b/TEMA5/1.png new file mode 100644 index 0000000..c3e9cda Binary files /dev/null and b/TEMA5/1.png differ diff --git a/TEMA5/2.png b/TEMA5/2.png new file mode 100644 index 0000000..7d75984 Binary files /dev/null and b/TEMA5/2.png differ diff --git a/TEMA5/report.md b/TEMA5/report.md new file mode 100644 index 0000000..47c140c --- /dev/null +++ b/TEMA5/report.md @@ -0,0 +1,316 @@ +# Отчёт по теме 5. + +Савин Семён, А-02-23 + +## Пункт 2. + +Изучено ветвление по условию. Разные способы и формы использования конструкций с if, elif, else. + +```py +>>> porog = 10 +>>> rashod1 = 15 +>>> rashod = 20 +>>> if rashod>=porog: + dohod = 12 +elif rashod2 == porog: + dohod = 0 +else: dohod=-8 + +>>> dohod +12 + +>>> if rashod1>=3 and rashod2 ==4: + dohod = rashod1 + if rashod2==porog or rashod1>> dohod +12 + +>>> if porog ==3: + dohod =1 +elif porog == 4: + dohod=2 +elif porog ==5: + dohod=3 +else: + dohod=0 + +>>> dohod +0 + +>>> if porog>=5:rashod1=6;rashod2 =0 + +>>> +>>> rashod1 +6 +>>> rashod2 +0 +``` + +## Пункт 3. Цикл по перечислению, использование for. + +## Пункт 3.1. Простой цикл. + +```py +>>> temperatura = 5 +>>> for i in range(3,18,3): + temperatura+=i + + +>>> temperatura +50 +``` + +## Пункт 3.2. Более сложный цикл + +```py +>>> 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] +``` + +Разница в том, что цикл for в первом случае каждый раз работает с увеличивающимся списком, и заканчивается только когда случится break. +Второй цикл закончится после четырех итераций - по длине неполной копии (shallow copy) изначального списка. + +## Пункт 3.3. + +```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) + + +471 + +>>> for i in range(10): + sps5.append(rn.randint(1,100)) + ss=sum(sps5) + if ss>500:break +else: + print(ss) + + +>>> ss +544 + +>>> for i in range(10): + sps5.append(rn.randint(1,100)) + ss=sum(sps5) + if ss>500: + print(ss); break +else: + print(ss) + + +575 +``` + +ss не выводится, т.к. в случае превышения суммы 500, есть только break, но нет выполнения команды вывода ответа. +В третьем вызове добавил выполнение команды print(ss), потом break. + +## Пункт 3.4. Пример работы с символьной строкой. + +```py +>>> stroka +'Это - автоматизированная системаЭто - автоматизированная система' +>>> stroka = 'Это - автоматизированная система' +>>> stroka1 = '' +>>> for ss in stroka: + stroka1+=''+ss + + +>>> stroka1 +'Это - автоматизированная система' +``` + +Пункт 3.5. Запись цикла в строке + +```py +>>> import math +>>> sps2=[math.sin(i*math.pi/5+2) for i in range(100)] +>>> import pylab +>>> pylab.plot(sps2) +[] +>>> pylab.show() +``` +![Полученный график] (1.png) +## Пункт 4. Цикл While + +## Пункт 4.1. Цикл со счетчиком + +```py +>>> while rashod: + print('Расход=', rashod) + rashod-=50 + + +Расход= 300 +Расход= 250 +Расход= 200 +Расход= 150 +Расход= 100 +Расход= 50 +``` +Цикл while заканчивается тогда когда число rashod достигает 0, так как условие больше не соблюдается. + +## Пункт 4.2. Пример с символьной строкой. + +```py +>>> stroka = 'Расчёт процесса в объекте регулирования' +>>> i=0 +>>> sps2=[] +>>> while i>> for i in range(250,301): + chislo = i + kandidat = chislo//2 + while kandidat>1: + if chislo%kandidat==0: + print(chislo, ' имеет множитель ', kandidat) + break + kandidat-=1 + else: + print(chislo, ' является простым') + + +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 +``` +