ответвлено от main/python-labs
47 строки
1.7 KiB
Markdown
47 строки
1.7 KiB
Markdown
# Тест по Теме 8
|
|
|
|
Володин Денис, А-02-23
|
|
|
|
## Задание (Вариант 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.
|
|
|
|
Разбить на модули
|
|
|
|
## Решение
|
|
|
|
```py
|
|
|
|
#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)))
|
|
```
|
|
|
|
## Результат
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|