форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
1.8 KiB
1.8 KiB
Индивидуальное контрольное задание по теме 7
Махнов Георгий, А-01-23
Задание 6
- Разработайте функцию с 3 аргументами: x, А и В, реализующую преобразование входного сигнала x по формуле:
y=B, если x>A;
y= 2Bx/A-Bx^2/A^2 , если 0≤ x ≤ А;
y= 2B * x/A +B*x^2 /A^2 , если -A≤ x <0; y=-B, если x< -A. Создайте список со 100 значениями входного сигнала х – случайными, равномерно распределенными числами в диапазоне значений от -5 до 12. Для элементов списка с помощью функции рассчитайте список со значениями выходного сигнала y при трех разных парах значений А и В. Записать результаты в текстовый файл в виде двух столбцов: хi, yi.
Выполнение
from random import *
def func(x, A, B):
"""Преобразование входного сигнала"""
if x>A:
y = B
elif 0<= x <= A:
y = 2*B*x/A - B*x**2/A**2
elif -A<= x <=0:
y = 2*B*x/A + B*x**2/A**2
else:
y = -B
return x, y
sample = [uniform(-5, 12) for _ in range(100)]
final_list= []
with open("TEMA7\\test.txt", "w+") as f:
for _ in range(3):
A = randint(1, 10)
B = randint(1, 10)
#f.write(f"x|y for A={A} and B={B}\n")
final_list.append(f"(A = {A},B = {B})")
for i in range(len(sample)):
res = func(sample[i], A, B)
final_list.append(res)
f.write(f"{res[0]}|{res[1]}\n")
print(final_list)