# Отчёт по теме 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 ```