форкнуто от main/python-labs
main
Родитель
053779cddb
Сommit
e7eeaaf4d8
@ -1,5 +1,58 @@
|
|||||||
#Программа по Теме 1 <Зеленкина Ксения Михайловна>
|
import numpy as np
|
||||||
print('Hello')
|
import matplotlib.pyplot as plt
|
||||||
h=input('Your name=')
|
|
||||||
import os
|
# Параметры системы
|
||||||
os.chdir("C:/Users/user/OneDrive/Documents/ZelenkinaKs/python-labs/TEMA1/Отчет")
|
K = 2.0
|
||||||
|
|
||||||
|
# Частотный диапазон (логарифмическая шкала)
|
||||||
|
omega = np.logspace(-1, 2, 500) # от 0.1 до 100 рад/с
|
||||||
|
|
||||||
|
# Действительная и мнимая части АФХ
|
||||||
|
U = np.zeros_like(omega) # Всегда 0
|
||||||
|
V = -K / omega # Мнимая часть
|
||||||
|
|
||||||
|
# Построение годографа
|
||||||
|
plt.figure(figsize=(8, 8))
|
||||||
|
plt.plot(U, V, 'b-', linewidth=2, label='АФХ (годограф)')
|
||||||
|
plt.plot(U[0], V[0], 'go', markersize=8, label='Начало (ω=0.1)')
|
||||||
|
plt.plot(U[-1], V[-1], 'ro', markersize=8, label='Конец (ω=100)')
|
||||||
|
|
||||||
|
# Стрелки направления увеличения частоты
|
||||||
|
for i in [50, 150, 300]: # индексы для стрелок
|
||||||
|
plt.arrow(U[i], V[i], U[i+10]-U[i], V[i+10]-V[i],
|
||||||
|
head_width=0.1, head_length=0.1, fc='k', ec='k')
|
||||||
|
|
||||||
|
plt.xlabel('Действительная часть Re(W)')
|
||||||
|
plt.ylabel('Мнимая часть Im(W)')
|
||||||
|
plt.title(f'АФХ для интегрирующего звена $W(p) = K/p$\nK={K}')
|
||||||
|
plt.grid(True, alpha=0.3)
|
||||||
|
plt.axis('equal')
|
||||||
|
plt.legend()
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
# Дополнительно: построение отдельно действительной и мнимой частей
|
||||||
|
plt.figure(figsize=(12, 4))
|
||||||
|
|
||||||
|
plt.subplot(1, 2, 1)
|
||||||
|
plt.semilogx(omega, U, 'r-', linewidth=2)
|
||||||
|
plt.xlabel('ω (рад/с)')
|
||||||
|
plt.ylabel('Re(W)')
|
||||||
|
plt.title('Действительная часть')
|
||||||
|
plt.grid(True, alpha=0.3)
|
||||||
|
|
||||||
|
plt.subplot(1, 2, 2)
|
||||||
|
plt.semilogx(omega, V, 'g-', linewidth=2)
|
||||||
|
plt.xlabel('ω (рад/с)')
|
||||||
|
plt.ylabel('Im(W)')
|
||||||
|
plt.title('Мнимая часть')
|
||||||
|
plt.grid(True, alpha=0.3)
|
||||||
|
|
||||||
|
plt.tight_layout()
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
# Вывод таблицы значений
|
||||||
|
print("Таблица значений АФХ:")
|
||||||
|
print("ω\t\tRe(W)\t\tIm(W)")
|
||||||
|
print("-" * 40)
|
||||||
|
for i in range(0, len(omega), 50):
|
||||||
|
print(f"{omega[i]:.2f}\t\t{U[i]:.2f}\t\t{V[i]:.2f}")
|
||||||
@ -0,0 +1,106 @@
|
|||||||
|
# Общее контрольное задание по теме 5
|
||||||
|
Зеленкина Ксения, А-02-23
|
||||||
|
|
||||||
|
## Задание 1
|
||||||
|
|
||||||
|
Для заданной символьной строки с англоязычным текстом (его можно заимствовать из помощи) определите порядковый номер каждой буквы в английском алфавите.
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
_Код:_
|
||||||
|
```py
|
||||||
|
text = "Create a new string object from the given object."
|
||||||
|
sl = {}
|
||||||
|
for x in text:
|
||||||
|
if x.isalpha() == True:
|
||||||
|
a = x.lower()
|
||||||
|
pos = ord(a) - ord('a') + 1
|
||||||
|
sl[a] = pos
|
||||||
|
for l in sl:
|
||||||
|
print(f"{l}: {sl[l]}")
|
||||||
|
```
|
||||||
|
|
||||||
|
_Вывод:_
|
||||||
|
```py
|
||||||
|
C: 3
|
||||||
|
r: 18
|
||||||
|
e: 5
|
||||||
|
a: 1
|
||||||
|
t: 20
|
||||||
|
n: 14
|
||||||
|
w: 23
|
||||||
|
s: 19
|
||||||
|
i: 9
|
||||||
|
g: 7
|
||||||
|
o: 15
|
||||||
|
b: 2
|
||||||
|
j: 10
|
||||||
|
c: 3
|
||||||
|
f: 6
|
||||||
|
m: 13
|
||||||
|
h: 8
|
||||||
|
v: 22
|
||||||
|
```
|
||||||
|
|
||||||
|
## Задание 2
|
||||||
|
|
||||||
|
Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с отсутствующим словом).
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
_Код:_
|
||||||
|
```py
|
||||||
|
spis = ["список", "со", "словами", "из", "задания", "данного", "пункта"]
|
||||||
|
word1 = "список"
|
||||||
|
word2 = "программа"
|
||||||
|
|
||||||
|
if word1 in spis:
|
||||||
|
print(f"'{word1}' есть в списке!")
|
||||||
|
else:
|
||||||
|
print(f"'{word1}' нет в списке!")
|
||||||
|
|
||||||
|
if word2 in spis:
|
||||||
|
print(f"'{word2}' есть в списке!")
|
||||||
|
else:
|
||||||
|
print(f"'{word2}' нет в списке!")
|
||||||
|
```
|
||||||
|
|
||||||
|
_Вывод:_
|
||||||
|
```py
|
||||||
|
'список' есть в списке!
|
||||||
|
'программа' нет в списке!
|
||||||
|
```
|
||||||
|
|
||||||
|
## Задание 3
|
||||||
|
Создайте список студентов вашей группы (3-4 фамилии) и список их средних баллов в летней сессии – в порядке перечисления студентов в первом списке. Создайте еще 2 аналогичных списка для тех же студентов, но в другом порядке, по зимней сессии. Напишите инструкции, позволяющие по указанной (запрошенной и введенной) фамилии студента вывести его средние баллы по двум сессиям.
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
_Код:_
|
||||||
|
```py
|
||||||
|
studentsSum = ["Зеленкина", "Криви", "Капитонов", "Хатюхин"]
|
||||||
|
gradesSum = [4.5, 3.8, 4.2, 4.9]
|
||||||
|
studentsWin = ["Криви", "Хатюхин", "Зеленкина", "Капитонов"]
|
||||||
|
gradesWin = [4.1, 4.7, 4.3, 4.0]
|
||||||
|
print(f"Список студентов: {studentsSum}")
|
||||||
|
surname = input("Введите фамилию студента из списка: ")
|
||||||
|
if surname in studentsSum:
|
||||||
|
inds = studentsSum.index(surname)
|
||||||
|
gs = gradesSum[inds]
|
||||||
|
print(f"Летняя сессия: {gs}")
|
||||||
|
else:
|
||||||
|
print("Такой студент не найден")
|
||||||
|
|
||||||
|
if surname in studentsWin:
|
||||||
|
indw = studentsWin.index(surname)
|
||||||
|
gw = gradesWin[indw]
|
||||||
|
print(f"Зимняя сессия: {gw}")
|
||||||
|
else:
|
||||||
|
print("Такой студент не найден")
|
||||||
|
```
|
||||||
|
|
||||||
|
_Вывод:_
|
||||||
|
```py
|
||||||
|
Список студентов: ['Зеленкина', 'Криви', 'Капитонов', 'Хатюхин']
|
||||||
|
Введите фамилию студента из списка: Криви
|
||||||
|
Летняя сессия: 3.8
|
||||||
|
Зимняя сессия: 4.1
|
||||||
|
```
|
||||||
|
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
#1
|
||||||
|
text = "Create a new string object from the given object."
|
||||||
|
sl = {}
|
||||||
|
for x in text:
|
||||||
|
if x.isalpha() == True:
|
||||||
|
a = x.lower()
|
||||||
|
pos = ord(a) - ord('a') + 1
|
||||||
|
sl[a] = pos
|
||||||
|
for l in sl:
|
||||||
|
print(f"{l}: {sl[l]}")
|
||||||
|
|
||||||
|
#2
|
||||||
|
spis = ["список", "со", "словами", "из", "задания", "данного", "пункта"]
|
||||||
|
word1 = "список"
|
||||||
|
word2 = "программа"
|
||||||
|
|
||||||
|
if word1 in spis:
|
||||||
|
print(f"'{word1}' есть в списке!")
|
||||||
|
else:
|
||||||
|
print(f"'{word1}' нет в списке!")
|
||||||
|
|
||||||
|
if word2 in spis:
|
||||||
|
print(f"'{word2}' есть в списке!")
|
||||||
|
else:
|
||||||
|
print(f"'{word2}' нет в списке!")
|
||||||
|
|
||||||
|
#3
|
||||||
|
studentsSum = ["Зеленкина", "Криви", "Капитонов", "Хатюхин"]
|
||||||
|
gradesSum = [4.5, 3.8, 4.2, 4.9]
|
||||||
|
studentsWin = ["Криви", "Хатюхин", "Зеленкина", "Капитонов"]
|
||||||
|
gradesWin = [4.1, 4.7, 4.3, 4.0]
|
||||||
|
print(f"Список студентов: {studentsSum}")
|
||||||
|
surname = input("Введите фамилию студента из списка: ")
|
||||||
|
if surname in studentsSum:
|
||||||
|
inds = studentsSum.index(surname)
|
||||||
|
gs = gradesSum[inds]
|
||||||
|
print(f"Летняя сессия: {gs}")
|
||||||
|
else:
|
||||||
|
print("Такой студент не найден")
|
||||||
|
|
||||||
|
if surname in studentsWin:
|
||||||
|
indw = studentsWin.index(surname)
|
||||||
|
gw = gradesWin[indw]
|
||||||
|
print(f"Зимняя сессия: {gw}")
|
||||||
|
else:
|
||||||
|
print("Такой студент не найден")
|
||||||
|
|
||||||
Загрузка…
Ссылка в новой задаче