форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
1.7 KiB
1.7 KiB
Тест по Теме 8
Володин Денис, А-02-23
Задание (Вариант 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.
Разбить на модули
Решение
#md1
def func(x, A):
for i in range(1, A*int(x)+1):
if (i*A<=x) and (x<(i+1)*A):
return i
elif (i*A*(-1)<x) and (x<=(i+1)*A*(-1)):
return i*(-1)
return 0
#md0
from md1 import func
import random
a = int(input("Введите значение А \n"))
with open ('test1.txt','w') as f:
ls = [random.triangular(-5, 25) for k in range(100)]
f.write('xi | yi\n')
f.write('A = {} \n'.format(a))
for x in ls:
f.write('{} | {}\n'.format(x, func(x, a)))
