Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

1.8 KiB

Индивидуальное контрольное задание по теме 7

Махнов Георгий, А-01-23

Задание 6

  1. Разработайте функцию с 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)