diff --git a/TEMA5/report.md b/TEMA5/report.md new file mode 100644 index 0000000..6f8d083 --- /dev/null +++ b/TEMA5/report.md @@ -0,0 +1,283 @@ +# Отчёт по Теме 4 +Соловьёва Екатерина А-01-23 + +## 1. Запуск IDLE, привязка католога, создание файла отчета. + +```py +import os +os.chdir("C:\\Users\\Ekaterina\\OneDrive\\Desktop\\Solovyova\\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, во втором — быстро превысили и вышли через break. + +## 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 +chislo=list(range(250,301)) + for i in chislo: + kandidat =i // 2 + while kandidat > 1: + if i%kandidat == 0: + print(i, ' имеет множитель ', kandidat) + break + kandidat -= 1 + else: + print(i, ' является простым!') +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 +``` \ No newline at end of file diff --git a/TEMA5/ris1.png b/TEMA5/ris1.png new file mode 100644 index 0000000..b2b052b 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..3b4ece8 Binary files /dev/null and b/TEMA5/ris2.png differ diff --git a/TEMA5/task.md b/TEMA5/task.md new file mode 100644 index 0000000..f75762e --- /dev/null +++ b/TEMA5/task.md @@ -0,0 +1,164 @@ +\# Общее контрольное задание по теме 5 + + + +Соловьёва Екатерина, А-01-23 + + + +\## Задание + + + +Реализовать, записать в текстовый файл программы и результаты их выполнения при решении следующих задач: + + + +•Для заданной символьной строки с англоязычным текстом (его можно заимствовать из помощи) определите порядковый номер каждой буквы в английском алфавите. + + + +•Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с отсутствующим словом). + + + +•Создайте список студентов вашей группы (3-4 фамилии) и список их средних баллов в летней сессии – в порядке перечисления студентов в первом списке. Создайте еще 2 аналогичных списка для тех же студентов, но в другом порядке, по зимней сессии. Напишите инструкции, позволяющие по указанной (запрошенной и введенной) фамилии студента вывести его сред-ние баллы по двум сессиям. + + + +\## Решение + + + +\# 1. + + + +```py + +import string + +strk = 'Winter is coming' + +for i in strk.lower(): + +  n = string.ascii\_lowercase.find(i) + +  if n >= 0: + +  print(f'Порядковый номер буквы {i} в английском алфавите: {n+1}') + + + +  + +Порядковый номер буквы w в английском алфавите: 23 + +Порядковый номер буквы i в английском алфавите: 9 + +Порядковый номер буквы n в английском алфавите: 14 + +Порядковый номер буквы t в английском алфавите: 20 + +Порядковый номер буквы e в английском алфавите: 5 + +Порядковый номер буквы r в английском алфавите: 18 + +Порядковый номер буквы i в английском алфавите: 9 + +Порядковый номер буквы s в английском алфавите: 19 + +Порядковый номер буквы c в английском алфавите: 3 + +Порядковый номер буквы o в английском алфавите: 15 + +Порядковый номер буквы m в английском алфавите: 13 + +Порядковый номер буквы i в английском алфавите: 9 + +Порядковый номер буквы n в английском алфавите: 14 + +Порядковый номер буквы g в английском алфавите: 7 + +``` + + + +\# 2. + + + +```py + +spis = \['Создайте', 'список', 'со', 'словами', 'из', 'задания', 'данного', 'пункта', 'Для', 'этого', 'списка', 'определите', 'есть', 'ли', 'в', 'нем', 'некоторое', 'заданное', 'значение', 'и', 'выведите', 'соответствующее', 'сообщение', 'либо', 'о', 'нахождении', 'элемента', 'либо', 'о', 'его', 'отсутствии', 'в', 'списке', 'проверить', 'как', 'с', 'имеющимся', 'так', 'и', 'с', 'отсутствующим', 'словом'] + +val = 'список' + +if val in spis: + +  print(f'{val} есть в списке') + +else: + +  print(f'{val} нет в списке') + +список есть в списке + +valu = 'кот' + +if valu in spis: + +  print(f'{valu} есть в списке') + +else: + +  print(f'{valu} нет в списке') + +кот нет в списке + +``` + + + +\# 3. + + + +```py + +stud\_spis = \['Лыкова', 'Соловьёва', 'Коваленко','Голощапов'] + +stud\_ocen = \[4.9, 4.4, 4.6, 4.8] + +stud\_spis2 = \['Соловьёва', 'Голощапов', 'Лыкова', 'Коваленко'] + +stud\_ocen2 = \[4.3, 4.8, 4.2, 4.9] + +nam = input('Введите фамилию студента:') + +if nam in stud\_spis and stud\_spis2: + +  print(f'Средний балл за летнюю сессию: ', stud\_ocen\[stud\_spis.index(nam)]) + +  print(f'Средний балл за зимнюю сессию: ', stud\_ocen2\[stud\_spis2.index(nam)]) + +else: + +  print(f'Студент отсутствует в списке') + +Введите фамилию студента:Соловьёва + +Средний балл за летнюю сессию: 4.4 + +Средний балл за зимнюю сессию: 4.3 + +Введите фамилию студента:Цветкова + +Студент отсутствует в списке + +``` + + + + + diff --git a/TEMA5/test.md b/TEMA5/test.md new file mode 100644 index 0000000..e69de29