From e7eeaaf4d84a25802d595d326b69e00b9868c495 Mon Sep 17 00:00:00 2001 From: Ksenia Date: Mon, 20 Oct 2025 00:17:00 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=9A=D0=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA1/Pr0.py | 63 ++++++++++++++++++++++++++--- TEMA5/Task5.md | 106 +++++++++++++++++++++++++++++++++++++++++++++++++ TEMA5/Task5.py | 47 ++++++++++++++++++++++ 3 files changed, 211 insertions(+), 5 deletions(-) create mode 100644 TEMA5/Task5.md create mode 100644 TEMA5/Task5.py diff --git a/TEMA1/Pr0.py b/TEMA1/Pr0.py index 4568189..cb18311 100644 --- a/TEMA1/Pr0.py +++ b/TEMA1/Pr0.py @@ -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}") \ No newline at end of file diff --git a/TEMA5/Task5.md b/TEMA5/Task5.md new file mode 100644 index 0000000..41c52dd --- /dev/null +++ b/TEMA5/Task5.md @@ -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 +``` + diff --git a/TEMA5/Task5.py b/TEMA5/Task5.py new file mode 100644 index 0000000..8d9bca6 --- /dev/null +++ b/TEMA5/Task5.py @@ -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("Такой студент не найден") +