Dmitry Kolomeytsev 4 дней назад
Родитель 67b160433f
Сommit 65efb42efc

@ -0,0 +1,53 @@
10
10
10
0
0
10
10
10
0
0
10
10
10
0
0
10
10
10
0
0
10
10
10
0
0
10
10
10
0
0
10
10
10
0
0
10
10
10
0
0
10
10
10
0
0
10
10
10
0
0
10
10
10

@ -4,4 +4,38 @@
## Задание
#### Вариант 4.
Разработайте функцию с 5 аргументами, создающую отсчеты сигнала в виде последовательности импульсов с заданными параметрами:
* амплитуда,
* продолжительность импульса,
* период (импульс + пауза),
* число отсчетов,
* имя текстового файла для записи сигнала.
Сигнал должен быть записан в виде столбца в текстовый файл с заданным именем (5-й аргумент функции), а также возвращен в вызывающую программу в виде списка.
## Решение
```py
# функция, создающая прямоугольные импульсы
def make_impulse_signal(ampl, impulse_duration, period, n, filename):
signal = []
for k in range(n):
pos = k % period # чтобы позиция от 0 до 6 всегда прыгала (период 7)
if pos < impulse_duration:
signal.append(ampl)
else:
signal.append(0)
with open(filename, 'w') as f:
for x in signal:
f.write(str(x) + '\n')
return signal
s = make_impulse_signal(10, 3, 5, 53, 'signal.txt')
print(s)
```

@ -0,0 +1,20 @@
def make_impulse_signal(ampl, impulse_duration, period, n, filename):
signal = []
for k in range(n):
pos = k % period # чтобы позиция от 0 до 6 всегда прыгала (период 7)
if pos < impulse_duration:
signal.append(ampl)
else:
signal.append(0)
# запись столбцом в файл
with open(filename, 'w') as f:
for x in signal:
f.write(str(x) + '\n')
return signal
s = make_impulse_signal(10, 3, 5, 53, 'signal.txt')
print(s)
Загрузка…
Отмена
Сохранить