ответвлено от main/python-labs
Добавление ИКЗ
Этот коммит содержится в:
64
TEMA7/test.md
Обычный файл
64
TEMA7/test.md
Обычный файл
@@ -0,0 +1,64 @@
|
|||||||
|
# Тест по Тест по Теме 7
|
||||||
|
|
||||||
|
Володин Денис, А-02-23
|
||||||
|
|
||||||
|
## Задание (Вариант 6)
|
||||||
|
|
||||||
|
Разработайте функцию с 3 аргументами: x, А и В, реализующую преобразование входного сигнала x по формуле: y=B, если x>A; y= 2B*x/A-B*x^2/A^2 , если 0≤ x ≤ А; y= 2B * x/A +B*x^2 /A^2 , если -A≤ x <0; y=-B, если x< -A. Создайте список со 100 значениями входного сигнала х – случайными, равномерно распределенными числами в диапазоне значений от -5 до 12. Для элементов списка с помощью функции рассчитайте список со значениями выходного сигнала y при трех разных парах значений А и В. Записать результаты в текстовый файл в виде двух столбцов: хi, yi.
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
|
||||||
|
```py
|
||||||
|
import random
|
||||||
|
with open ('test.txt','w') as f:
|
||||||
|
f = open('test.txt', 'w')
|
||||||
|
ls = [random.uniform(-5,12) for i in range(100)]
|
||||||
|
def func(x, A, B):
|
||||||
|
if x > A:
|
||||||
|
return B
|
||||||
|
elif (x >= 0) and (x <= A):
|
||||||
|
return (2*B*x/A - B*(x**2/A**2))
|
||||||
|
elif (x > (A*(-1))) and (x < 0):
|
||||||
|
return (2*B*x/A + B*(x**2/A**2))
|
||||||
|
else: return (-1)*B
|
||||||
|
|
||||||
|
f.write('xi | yi\n')
|
||||||
|
f.write('A = 5, B = 7\n')
|
||||||
|
for x in ls:
|
||||||
|
f.write('{} | {}\n'.format(x, func(x, 5, 7)))
|
||||||
|
|
||||||
|
f.write('A = 3, B = 4\n')
|
||||||
|
for x in ls:
|
||||||
|
f.write('{} | {}\n'.format(x, func(x, 3, 4)))
|
||||||
|
|
||||||
|
f.write('A = 8, B = 12\n')
|
||||||
|
for x in ls:
|
||||||
|
f.write('{} | {}\n'.format(x, func(x, 8, 12)))
|
||||||
|
```
|
||||||
|
|
||||||
|
## Вывод
|
||||||
|
|
||||||
|
xi | yi
|
||||||
|
A = 5, B = 7
|
||||||
|
-3.1409886467661665 | -6.032341500793359
|
||||||
|
-1.602178443752989 | -3.7673464281328797
|
||||||
|
-2.6510129868826056 | -5.45503280341763
|
||||||
|
...
|
||||||
|
6.28942001121716 | 7
|
||||||
|
8.459400921368147 | 7
|
||||||
|
A = 3, B = 4
|
||||||
|
-3.1409886467661665 | -4
|
||||||
|
-1.602178443752989 | -3.1315977319516377
|
||||||
|
-2.6510129868826056 | -3.945870250966844
|
||||||
|
...
|
||||||
|
6.28942001121716 | 4
|
||||||
|
8.459400921368147 | 4
|
||||||
|
A = 8, B = 12
|
||||||
|
-3.1409886467661665 | -7.573126625464633
|
||||||
|
-1.602178443752989 | -4.325227375203951
|
||||||
|
-2.6510129868826056 | -6.635313362531523
|
||||||
|
...
|
||||||
|
6.28942001121716 | 11.451359269120443
|
||||||
|
8.459400921368147 | 12
|
||||||
|
|
||||||
|
|
||||||
Ссылка в новой задаче
Block a user