форкнуто от main/python-labs
main
Родитель
9cc536e67c
Сommit
5e6240005b
@ -0,0 +1,102 @@
|
|||||||
|
# Индивидуальное контрольное задание по Теме 8
|
||||||
|
|
||||||
|
Кузьменко Елена, А-02-23, Вариант 6
|
||||||
|
|
||||||
|
## Задание
|
||||||
|
|
||||||
|
По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
|
||||||
|
|
||||||
|
Тема 7. Вариант 6:
|
||||||
|
|
||||||
|
1)Разработайте функцию с 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.
|
||||||
|
2)Создайте список со 100 значениями входного сигнала х – случайными, равномерно распределенными числами в диапазоне значений от -5 до 12. Для элементов списка с помощью функции рассчитайте список со значениями выходного сигнала y при трех разных парах значений А и В. Записать результаты в текстовый файл в виде двух столбцов: хi, yi.
|
||||||
|
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
|
||||||
|
### 1)Модуль с функцией. Mod1
|
||||||
|
|
||||||
|
```py
|
||||||
|
# Модуль 1 Mod1
|
||||||
|
def signal(x, A, B):
|
||||||
|
if x > A:
|
||||||
|
return B
|
||||||
|
elif 0 <= x <= A:
|
||||||
|
return (2 * B * x / A - B *(x ** 2 / A ** 2))
|
||||||
|
elif -A <= x < 0:
|
||||||
|
return (2 * B * x / A + B * (x ** 2 / A ** 2))
|
||||||
|
else: return -B
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2)Модуль с вызовом функцией. Mod2
|
||||||
|
|
||||||
|
```py
|
||||||
|
#Модуль 2 Mod2
|
||||||
|
import Mod1
|
||||||
|
import random
|
||||||
|
|
||||||
|
list1 = [random.uniform(-5, 12) for i in range(100)
|
||||||
|
|
||||||
|
with open('res1.txt', 'w') as f:
|
||||||
|
for x in list1:
|
||||||
|
y = Mod1.signal(x, 2, 3)
|
||||||
|
f.write(f'{x},{y}\n')
|
||||||
|
print('Записано в файл res1.txt')
|
||||||
|
|
||||||
|
with open('res2.txt', 'w') as f:
|
||||||
|
for x in list1:
|
||||||
|
y = Mod1.signal(x, 5, 10)
|
||||||
|
f.write(f'{x},{y}\n')
|
||||||
|
print('Записано в файл res2.txt')
|
||||||
|
|
||||||
|
with open('res3.txt', 'w') as f:
|
||||||
|
for x in list1:
|
||||||
|
y = Mod1.signal(x, 14, 2)
|
||||||
|
f.write(f'{x},{y}\n')
|
||||||
|
print('Записано в файл res3.txt')
|
||||||
|
```
|
||||||
|
|
||||||
|
### Проверка:
|
||||||
|
```py
|
||||||
|
>>> import Mod2
|
||||||
|
Записано в файл res1.txt
|
||||||
|
Записано в файл res2.txt
|
||||||
|
Записано в файл res3.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
### Содержание файлов:
|
||||||
|
|
||||||
|
res1.txt:
|
||||||
|
6.2878398530394435,3
|
||||||
|
1.6332453488707293,2.8991182694062854
|
||||||
|
9.58168555868085,3
|
||||||
|
9.388152051662587,3
|
||||||
|
-2.700200205379209,-3
|
||||||
|
1.643416420918447,2.9046361133470424
|
||||||
|
6.129143169727929,3
|
||||||
|
-1.15770954767006,-2.4679100954353688
|
||||||
|
. . .
|
||||||
|
|
||||||
|
res2.txt
|
||||||
|
6.2878398530394435,10
|
||||||
|
1.6332453488707293,5.46598524763977
|
||||||
|
9.58168555868085,10
|
||||||
|
9.388152051662587,10
|
||||||
|
-2.700200205379209,-7.884368361864867
|
||||||
|
1.643416420918447,5.493338670656028
|
||||||
|
6.129143169727929,10
|
||||||
|
. . .
|
||||||
|
|
||||||
|
res3.txt
|
||||||
|
6.2878398530394435,1.3930876108942174
|
||||||
|
1.6332453488707293,0.4394222387629852
|
||||||
|
9.58168555868085,1.800800994873782
|
||||||
|
9.388152051662587,1.7829679438919999
|
||||||
|
-2.700200205379209,-0.6970869857294686
|
||||||
|
1.643416420918447,0.4419881862568583
|
||||||
|
6.129143169727929,1.3678531914016274
|
||||||
|
-1.15770954767006,-0.3170977136530129
|
||||||
|
-4.584910303044539,-1.0954702652886033
|
||||||
|
-4.768872805808711,-1.1304723543332864
|
||||||
|
|
||||||
Загрузка…
Ссылка в новой задаче