форкнуто от main/python-labs
Родитель
18bd54a343
Сommit
d795c97f58
@ -0,0 +1,8 @@
|
|||||||
|
import random
|
||||||
|
def white_noise(low, high, nums, file):
|
||||||
|
signal = [random.uniform(low, high) for x in range(nums)]
|
||||||
|
with open(file, 'w') as f:
|
||||||
|
for i in range (0, nums, 3):
|
||||||
|
line = signal[i:i+3]
|
||||||
|
f.write(','.join(str(x) for x in line) + '\n')
|
||||||
|
return signal
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
from Mod1_Zadanie import white_noise
|
||||||
|
low = float(input("Нижняя граница: "))
|
||||||
|
high = float(input("Верхняя граница: "))
|
||||||
|
nums = int(input("Количество отсчётов: "))
|
||||||
|
file = input("Имя файла: ")
|
||||||
|
result = white_noise(low, high, nums, file)
|
||||||
|
print("Файл", file, "создан")
|
||||||
|
print("Содержимое файла: ")
|
||||||
|
with open (file, 'r') as f:
|
||||||
|
print(f.read())
|
||||||
@ -0,0 +1,100 @@
|
|||||||
|
# Контрольное задание по теме 8
|
||||||
|
|
||||||
|
Филиппов Даниил Юрьевич, А-01-23, Вариант - 3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Задание
|
||||||
|
|
||||||
|
Разработать функцию, на ее основе создать модуль. Создать второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
|
||||||
|
|
||||||
|
Разработать функцию с 4 аргументами, создающую последовательность отсчетов случайного, равномерно распределенного сигнала типа белого шума с заданными параметрами: границы диапазона изменения, число отсчетов (аргументы функции). Сигнал должен быть записан построчно, по 3 элемента в строке с разделителем - запятая в текстовый файл с заданным именем (4-й аргумент функции), а также возвращен в вызывающую программу в виде списка.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Решение
|
||||||
|
|
||||||
|
Содержание Mod1\_Zadanie.py:
|
||||||
|
|
||||||
|
```py
|
||||||
|
|
||||||
|
import random
|
||||||
|
|
||||||
|
def white\_noise(low, high, nums, file):
|
||||||
|
|
||||||
|
signal = \[random.uniform(low, high) for x in range(nums)]
|
||||||
|
|
||||||
|
with open(file, 'w') as f:
|
||||||
|
|
||||||
|
for i in range (0, nums, 3):
|
||||||
|
|
||||||
|
line = signal\[i:i+3]
|
||||||
|
|
||||||
|
f.write(','.join(str(x) for x in line) + '\\n')
|
||||||
|
|
||||||
|
return signal
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Содержание Mod2\_Zadanie.py:
|
||||||
|
|
||||||
|
```py
|
||||||
|
|
||||||
|
from Mod1\_Zadanie import white\_noise
|
||||||
|
|
||||||
|
low = float(input("Нижняя граница: "))
|
||||||
|
|
||||||
|
high = float(input("Верхняя граница: "))
|
||||||
|
|
||||||
|
nums = int(input("Количество отсчётов: "))
|
||||||
|
|
||||||
|
file = input("Имя файла: ")
|
||||||
|
|
||||||
|
result = white\_noise(low, high, nums, file)
|
||||||
|
|
||||||
|
print("Файл", file, "создан")
|
||||||
|
|
||||||
|
print("Содержимое файла: ")
|
||||||
|
|
||||||
|
with open (file, 'r') as f:
|
||||||
|
|
||||||
|
print(f.read())
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Тестирование:
|
||||||
|
|
||||||
|
```py
|
||||||
|
|
||||||
|
>>> import Mod2\_Zadanie
|
||||||
|
|
||||||
|
Нижняя граница: 0
|
||||||
|
|
||||||
|
Верхняя граница: 10
|
||||||
|
|
||||||
|
Количество отсчётов: 6
|
||||||
|
|
||||||
|
Имя файла: Zadanie.txt
|
||||||
|
|
||||||
|
Файл Zadanie.txt создан
|
||||||
|
|
||||||
|
Содержимое файла:
|
||||||
|
|
||||||
|
9.484972022588545,5.371140819676387,1.5637191185702592
|
||||||
|
|
||||||
|
7.117651498617205,5.116922385849644,4.382290457081045
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Загрузка…
Ссылка в новой задаче