# Индивидуальное контрольное задание по Теме 8 Таболин Иван, А-01-23 Вариант 7 ## Задание По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов. Вариант 7 из ИКЗ по Теме 7 Разработайте функцию с 2 параметрами: х и А, реализующую преобразование входного сигнала x по формуле: y=i, если i*A<=x<(i+1)*A, y=-i, если -(i+1)*A>=x>-i*A, где i принимает значения от 1 до А*х. Если не выполнится ни одно из неравенств ни при каком i, то y=0. Создайте список со 100 значениями входного сигнала х – случайными, треугольно (triangular) распределенными числами в диапазоне значений от -5 до 25. Для элементов списка с помощью функции рассчитайте список со значениями выходного сигнала y при А=1. Записать результаты в текстовый файл в виде двух столбцов: хi, yi. ## Решение Модуль 1 ```py # 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 ```py # 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') file.write('x[i] y[i]') for i in range(len(x)): s=str(x[i])+' '+str(y[i]) + '\n' file.write(s) file.close() ```