форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
34 строки
1.8 KiB
Markdown
34 строки
1.8 KiB
Markdown
# Индивидуальное контрольное задание по теме 7
|
|
|
|
Зеленкина Катерина, А-02-23
|
|
Вариант 1
|
|
|
|
## Задание
|
|
Разработайте функцию с 5 аргументами, создающую последовательность отсчетов синусоидального сигнала с заданными параметрами: амплитуда, период, фаза, число отсчетов (аргументы функции). Сигнал должен быть записан в виде столбца в текстовый файл с заданным именем (5-й аргумент функции), а также возвращен в вызывающую программу в виде списка.
|
|
|
|
## Решение
|
|
```py
|
|
import math
|
|
def signal(A, T, phi, N, filename):
|
|
signal = []
|
|
for i in range(N):
|
|
value = A * math.sin(2 * math.pi * i / T + phi)
|
|
signal.append(value)
|
|
|
|
f = open(filename, 'w')
|
|
for val in signal:
|
|
f.write(str(val) + '\n')
|
|
f.close()
|
|
return signal
|
|
|
|
result = signal(2.0, 10.0, 0.0, 20, "signal.txt")
|
|
print(f"Количество отсчётов: {len(result)}")
|
|
print(f"Значений: {result}")
|
|
|
|
|
|
Количество отсчётов: 20
|
|
Значения: [0.0, 1.1755705045849463, 1.902113032590307, 1.9021130325903073, 1.1755705045849465, 2.4492935982947064e-16, -1.175570504584946, -1.902113032590307, -1.9021130325903073, -1.1755705045849467, -4.898587196589413e-16, 1.1755705045849445, 1.902113032590307, 1.9021130325903073, 1.1755705045849467, 7.347880794884119e-16, -1.1755705045849456, -1.9021130325903068, -1.9021130325903075, -1.175570504584947]
|
|
```
|
|
|
|
Содержимое файла "signal"
|
|
 |