форкнуто от main/python-labs
main
Родитель
053779cddb
Сommit
e7eeaaf4d8
@ -1,5 +1,58 @@
|
||||
#Программа по Теме 1 <Зеленкина Ксения Михайловна>
|
||||
print('Hello')
|
||||
h=input('Your name=')
|
||||
import os
|
||||
os.chdir("C:/Users/user/OneDrive/Documents/ZelenkinaKs/python-labs/TEMA1/Отчет")
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
# Параметры системы
|
||||
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("Такой студент не найден")
|
||||
|
||||
Загрузка…
Ссылка в новой задаче