Katerina 2 месяцев назад
Родитель 686c8318cd
Сommit c896314831

@ -0,0 +1,301 @@
# Отчёт по теме 5
Зеленкина Катерина Михайловна, А-02-23
## Пункт 1.Запуск оболочки IDLE
## Пункт 2. Инструкция if
- ветвление по условию
Определение значения dohod:
```py
>>> porog = 10
>>> rashod1 = 50
>>> rashod2 = 35
>>> if rashod1>=porog:
... dohod=12
>>> elif rashod2==porog:
... dohod=0
>>> else:
... dohod=-8
>>> dohod
12
```
Выполнить ещё одну операцию, определила значение dohod:
```py
>>> del dohod
>>> if rashod1>=3 and rashod2==4:
... dohod=rashod1
... if rashod2==porog or rashod1<rashod2:
... dohod=porog
...
...
>>> dohod
Traceback (most recent call last):
File "<pyshell#46>", line 1, in <module>
dohod
NameError: name 'dohod' is not defined
```
И ещё одна операция с множественным ветвлением линий потока:
```py
>>> if porog==3:
... dohod=1
>>> elif porog==4:
... dohod=2
>>> else:
... dohod=0
>>> dohod
0
```
Условные инструкции могут записываться также в одну строку в операторе присваивания:
```py
>>> del dohod
>>> dohod=2 if porog>=4 else 0
>>> dohod
2
>>> 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
>>> 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]
```
В первом способе цикл итерируется по самому списку sps, который изменяется внутри цикла и на каждой итерации добавляется новый элемент, что приводит к бесконечному циклу, прерванному только условием. Во-втором способе цикл итерируется по срезу-копии исходного списка, который не изменяется.
### Пункт 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)
>>> sps5=[]
>>> for i in range(10):
... sps5.append(rn.randint(1,100))
... ss=sum(sps5)
... if ss>500: break
>>> else:
print(ss)
...
...
420
```
__Вывод:__ Вывод ss происходит только если цикл завершился нормально (без break), то есть в первом случае 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)]
>>> 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)
[<matplotlib.lines.Line2D object at 0x000001ECFBB62350>]
>>> pylab.title('Синусоидальный сигнал')
Text(0.5, 1.0, 'Синусоидальный сигнал')
>>> pylab.xlabel('Отсчеты')
Text(0.5, 0, 'Отсчеты')
>>> pylab.ylabel('Амплитуда')
Text(0, 0.5, 'Амплитуда')
>>> pylab.grid(True)
>>> pylab.show()
```
![Скриншот графика1](график1.png)
## Пункт 4. Инструкция while
### Пункт 4.1. Цикл со счётчиком
```py
>>> rashod=300
>>> while rashod:
... print("Расход=",rashod)
... rashod-=50
Расход= 300
Расход= 250
Расход= 200
Расход= 150
Расход= 100
Расход= 50
```
__Вывод:__ цикл завершился, когда rashod стал равен 0.
### Пункт 4.2. Пример с символьной строкой
```py
>>> import math
>>> stroka = 'Расчет процесса в объекте регулирования'
>>> i = 0
>>> sps2 = []
>>> tp=[]
>>> while i < len(stroka):
... r = 1 - 2 / (1 + math.exp(0.1 * i))
... sps2.append(r)
... tp.append(i)
... 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
>>> import matplotlib.pyplot as plt
>>> plt.plot(tp, sps2, 'r-', marker='o', linewidth=2, markersize=4, label='Выходной сигнал инерционного звена')
[<matplotlib.lines.Line2D object at 0x0000016A21FE20D0>]
>>> plt.title('Сигнал на выходе инерционного звена')
Text(0.5, 1.0, 'Сигнал на выходе инерционного звена')
>>> plt.xlabel('Время, i')
Text(0.5, 0, 'Время, i')
>>> plt.ylabel('Значение сигнала')
Text(0, 0.5, 'Значение сигнала')
>>> plt.grid(True, which='major', linestyle='--', linewidth=0.5)
>>> plt.legend()
<matplotlib.legend.Legend object at 0x0000016A21FE2210>
>>> plt.show()
```
![Скриншот графика2](график2.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
```
Дополнила программу для выявления всех простых чисел в диапазоне от 250 до 300:
```py
>>> for chislo in range(250, 301):
... kandidat = chislo // 2
... while kandidat > 1:
... if chislo % kandidat == 0:
... break
... kandidat -= 1
... else:
... if chislo > 1:
... print(chislo, '- простое число')
251 - простое число
257 - простое число
263 - простое число
269 - простое число
271 - простое число
277 - простое число
281 - простое число
283 - простое число
293 - простое число
```
## Пункт 5. Закончила сеанс работы с IDLE

@ -0,0 +1,109 @@
# Общее контрольное задание
Зеленкина Катерина, А-02-23
## Задание
Реализовать, записать в текстовый файл программы и результаты их выполнения при решении следующих задач:
1. Для заданной символьной строки с англоязычным текстом (его можно заимствовать из помощи) определите порядковый номер каждой буквы в английском алфавите.
2. Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с отсутствующим словом).
3. Создайте список студентов вашей группы (3-4 фамилии) и список их средних баллов в летней сессии – в порядке перечисления студентов в первом списке. Создайте еще 2 аналогичных списка для тех же студентов, но в другом порядке, по зимней сессии. Напишите инструкции, позволяющие по указанной (запрошенной и введенной) фамилии студента вывести его средние баллы по двум сессиям.
## Решение
```py
text = "Hello world from Python"
print(text)
alphabet = 'abcdefghijklmnopqrstuvwxyz'
for char in text:
lower_char = char.lower()
if lower_char in alphabet:
position = alphabet.index(lower_char) + 1
print(f"Буква '{char}' имеет порядковый номер {position}")
else:
print(f"Символ '{char}' не является буквой английского алфавита")
Hello world from Python
Буква 'H' имеет порядковый номер 8
Буква 'e' имеет порядковый номер 5
Буква 'l' имеет порядковый номер 12
Буква 'l' имеет порядковый номер 12
Буква 'o' имеет порядковый номер 15
Символ ' ' не является буквой английского алфавита
Буква 'w' имеет порядковый номер 23
Буква 'o' имеет порядковый номер 15
Буква 'r' имеет порядковый номер 18
Буква 'l' имеет порядковый номер 12
Буква 'd' имеет порядковый номер 4
Символ ' ' не является буквой английского алфавита
Буква 'f' имеет порядковый номер 6
Буква 'r' имеет порядковый номер 18
Буква 'o' имеет порядковый номер 15
Буква 'm' имеет порядковый номер 13
Символ ' ' не является буквой английского алфавита
Буква 'P' имеет порядковый номер 16
Буква 'y' имеет порядковый номер 25
Буква 't' имеет порядковый номер 20
Буква 'h' имеет порядковый номер 8
Буква 'o' имеет порядковый номер 15
Буква 'n' имеет порядковый номер 14
```
```py
words_list = ["создайте", "список", "со", "словами", "из", "задания", "данного", "пункта"]
search_word = "список"
print(f"Проверяем наличие слова: '{search_word}'")
if search_word in words_list:
print(f"Элемент '{search_word}' найден в списке.")
else:
print(f"Элемент '{search_word}' отсутствует в списке.")
# С отсутствующим словом
search_word_absent = "программирование"
print(f"Проверяем наличие слова: '{search_word_absent}'")
if search_word_absent in words_list:
print(f"Элемент '{search_word_absent}' найден в списке.")
else:
print(f"Элемент '{search_word_absent}' отсутствует в списке.")
Проверяем наличие слова: 'список'
Элемент 'список' найден в списке.
Проверяем наличие слова: 'программирование'
Элемент 'программирование' отсутствует в списке.
```
```py
students = ["Криви", "Шинкаренко", "Капитонов"]
summer_grades = [4.5, 5.0, 3.8]
winter_students = ["Капитонов", "Криви", "Шинкаренко"]
winter_grades = [4.1, 4.3, 4.7]
surname = input("Введите фамилию студента: ")
if surname in students:
index = students.index(surname)
summer_grade = summer_grades[index]
if surname in winter_students:
winter_index = winter_students.index(surname)
winter_grade = winter_grades[winter_index]
print(f"Студент {surname}:")
print(f" Летняя сессия: {summer_grade}")
print(f" Зимняя сессия: {winter_grade}")
print(f" Средний балл:{(summer_grade + winter_grade) / 2:.2f} ")
else:
print(f"Студент {surname} не найден в списке зимней сессии")
else:
print(f"Студент {surname} не найден в списке студентов")
Введите фамилию студента: Криви
Студент Криви:
Летняя сессия: 4.5
Зимняя сессия: 4.3
Средний балл:4.40
```

@ -0,0 +1,12 @@
text = "Hello world from Python"
print(text)
alphabet = 'abcdefghijklmnopqrstuvwxyz'
for char in text:
lower_char = char.lower()
if lower_char in alphabet:
position = alphabet.index(lower_char) + 1
print(f"Буква '{char}' имеет порядковый номер {position}")
else:
print(f"Символ '{char}' не является буквой английского алфавита")

@ -0,0 +1,18 @@
words_list = ["создайте", "список", "со", "словами", "из", "задания", "данного", "пункта"]
search_word = "список"
print(f"Проверяем наличие слова: '{search_word}'")
if search_word in words_list:
print(f"Элемент '{search_word}' найден в списке.")
else:
print(f"Элемент '{search_word}' отсутствует в списке.")
# С отсутствующим словом
search_word_absent = "программирование"
print(f"Проверяем наличие слова: '{search_word_absent}'")
if search_word_absent in words_list:
print(f"Элемент '{search_word_absent}' найден в списке.")
else:
print(f"Элемент '{search_word_absent}' отсутствует в списке.")

@ -0,0 +1,24 @@
students = ["Криви", "Шинкаренко", "Капитонов"]
summer_grades = [4.5, 5.0, 3.8]
winter_students = ["Капитонов", "Криви", "Шинкаренко"]
winter_grades = [4.1, 4.3, 4.7]
surname = input("Введите фамилию студента: ")
if surname in students:
index = students.index(surname)
summer_grade = summer_grades[index]
if surname in winter_students:
winter_index = winter_students.index(surname)
winter_grade = winter_grades[winter_index]
print(f"Студент {surname}:")
print(f" Летняя сессия: {summer_grade}")
print(f" Зимняя сессия: {winter_grade}")
print(f" Средний балл:{(summer_grade + winter_grade) / 2:.2f} ")
else:
print(f"Студент {surname} не найден в списке зимней сессии")
else:
print(f"Студент {surname} не найден в списке студентов")

Двоичные данные
TEMA5/график1.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 124 KiB

Двоичные данные
TEMA5/график2.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 127 KiB

Загрузка…
Отмена
Сохранить