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

2.5 KiB

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

Таболин Иван, А-01-23 Вариант 7

Задание

По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.

Вариант 7 из ИКЗ по Теме 7 Разработайте функцию с 2 параметрами: х и А, реализующую преобразование входного сигнала x по формуле: y=i, если i*A<=x<(i+1)A, y=-i, если -(i+1)A>=x>-iA, где i принимает значения от 1 до Ах. Если не выполнится ни одно из неравенств ни при каком i, то y=0. Создайте список со 100 значениями входного сигнала х – случайными, треугольно (triangular) распределенными числами в диапазоне значений от -5 до 25. Для элементов списка с помощью функции рассчитайте список со значениями выходного сигнала y при А=1. Записать результаты в текстовый файл в виде двух столбцов: хi, yi.

Решение

Модуль 1

# Mod1
# Функция
def preob(x, A):
    max_i=int(A*x)
    for i in range(1, max_i+1):
        if i*A<=x and x<(i+1)*A:
            return i
        elif -(i+1)*A>=x and x>(-i)*A:
            return -i
    return 0

Модуль 2

# Mod2
# Генерация входных данных и применение функции
import random as rn
from Mod1_IKZ import preob
x=[]
for i in range(100):
    x.append(rn.triangular(-5,25))
y=[]
for i in range(len(x)):
    y.append(preob(x[i],1))
filename=input('Введите имя файла:')
file=open(filename,'w')
for i in range(len(x)):
      s=str(x[i])+' '+str(y[i]) + '\n'
      file.write(s)
file.close()