diff --git a/TEMA5/report.md b/TEMA5/report.md new file mode 100644 index 0000000..3ab246d --- /dev/null +++ b/TEMA5/report.md @@ -0,0 +1,250 @@ +# Отчет по теме 5 + +Лыкова Елизавета, А-01-23 + +## 1. Запуск IDLE, привязка католога, создание файла отчета. + +```py +import os +os.chdir("C:\\Users\\Home\\Desktop\\python-labs\\TEMA5") +``` + +## 2. Ветвление по условию. + +```py +porog,rashod1,rashod2 = 5,13,24 +if rashod1>=porog: + dohod=12 +elif rashod2==porog: + dohod=0 +else: + dohod=-8 +dohod +12 +porog,rashod1,rashod2 = 5,13,4 +if rashod1>=3 and rashod2==4: + dohod=rashod1 + if rashod2==porog or rashod1= 4 else 0 +dohod +2 +porog,rashod1,rashod2 = 5,13,24 +if porog >= 5:rashod1 = 6; rashod2 = 0 +rashod1,rashod2 +(6, 0) +``` + +## 3. Цикл по перечислению. + +## 3.1 Простой цикл. + +```py +temperatura = 5 +for i in range(3,18,3): + temperatura += i +temperatura +50 +``` + +## 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] +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 Создание списка со случайными числами. + +```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) +386 +for i in range(10): + sps5.append(rn.randint(1,100)) + ss = sum(sps5) + if ss>500: break +else: + print(ss) +#Пусто +``` + +Вывод значения бывает не всегда, т.к у нас есть условие, что если сумма всех чисел будет превышать 500, то цикл заканчивается, при этом не выводя ничего. + +## 3.4 Символьная строка. + +```py +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, label = 'Синусоидальный сигнал') +[] +pylab.show() +``` + +![график](ris1.png) + +## 4. Цикл while. + +## 4.1 Цикл со счётчиком. + +```py +rashod = 300 +while rashod: + print('Расход =',rashod) + rashod -= 50 +Расход = 300 +Расход = 250 +Расход = 200 +Расход = 150 +Расход = 100 +Расход = 50 +``` + +Завершение цкила произошло в тот момент, когда значение rashod стало равнятся нулю, т.к в питоне 0 идентифицируется как False. + +## 4.2 Символьная строка. + +```py +import math +stroka = 'Расчет процесса в объекте регулирования' +i = 0 +sps2 = [] +while i < len(stroka): + r = 1 -2/(1 + math.exp(0.1*i)) + sps2.append(r) + print('Значение в момент', i, '=', r) + i += 1 +Значение в момент 0 = 0.0 +Значение в момент 1 = 0.049958374957880025 +Значение в момент 2 = 0.09966799462495568 +Значение в момент 3 = 0.14888503362331795 +Значение в момент 4 = 0.197375320224904 +Значение в момент 5 = 0.2449186624037092 +Значение в момент 6 = 0.2913126124515909 +Значение в момент 7 = 0.3363755443363322 +Значение в момент 8 = 0.3799489622552249 +Значение в момент 9 = 0.421899005250008 +Значение в момент 10 = 0.4621171572600098 +Значение в момент 11 = 0.5005202111902354 +Значение в момент 12 = 0.5370495669980353 +Значение в момент 13 = 0.5716699660851172 +Значение в момент 14 = 0.6043677771171636 +Значение в момент 15 = 0.6351489523872873 +Значение в момент 16 = 0.6640367702678489 +Значение в момент 17 = 0.6910694698329307 +Значение в момент 18 = 0.7162978701990245 +Значение в момент 19 = 0.7397830512740043 +Значение в момент 20 = 0.7615941559557649 +Значение в момент 21 = 0.7818063576087741 +Значение в момент 22 = 0.8004990217606297 +Значение в момент 23 = 0.8177540779702878 +Значение в момент 24 = 0.8336546070121553 +Значение в момент 25 = 0.8482836399575129 +Значение в момент 26 = 0.8617231593133063 +Значение в момент 27 = 0.874053287886007 +Значение в момент 28 = 0.8853516482022625 +Значение в момент 29 = 0.8956928738431645 +Значение в момент 30 = 0.9051482536448664 +Значение в момент 31 = 0.9137854901178277 +Значение в момент 32 = 0.9216685544064713 +Значение в момент 33 = 0.9288576214547277 +Значение в момент 34 = 0.935409070603099 +Значение в момент 35 = 0.9413755384972874 +Значение в момент 36 = 0.9468060128462683 +Значение в момент 37 = 0.9517459571646616 +Значение в момент 38 = 0.9562374581277391 +pylab.plot(sps2, label = 'Сигнал на выходе') +[] +pylab.show() +``` + +![график2](ris2.png) + +## 4.3 Цикл определения, является ли число простым. + +```py +chislo = 267 +kandidat = chislo//2 +while kandidat > 1: + if chislo % kandidat == 0: + print(chislo, 'имеет множитель', kandidat) + break + kandidat -= 1 +else: + print(chislo, 'Является простым!') +267 имеет множитель 89 +``` + +Дополнение: + +```py +for chislo in range(250, 301): + if chislo < 2: + continue + kandidat = chislo // 2 + while kandidat > 1: + if chislo % kandidat == 0: + print(chislo, 'имеет множитель', kandidat) + break + kandidat -= 1 + else: + print(chislo, 'является простым!') +251 является простым! +257 является простым! +263 является простым! +269 является простым! +271 является простым! +277 является простым! +281 является простым! +283 является простым! +293 является простым! +``` + + + + + + + diff --git a/TEMA5/ris1.png b/TEMA5/ris1.png new file mode 100644 index 0000000..5094286 Binary files /dev/null and b/TEMA5/ris1.png differ diff --git a/TEMA5/ris2.png b/TEMA5/ris2.png new file mode 100644 index 0000000..acca508 Binary files /dev/null and b/TEMA5/ris2.png differ