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')
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()