diff --git a/TEMA7/signal.txt b/TEMA7/signal.txt new file mode 100644 index 0000000..35ad954 --- /dev/null +++ b/TEMA7/signal.txt @@ -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 diff --git a/TEMA7/test.md b/TEMA7/test.md index 54819a2..1de044f 100644 --- a/TEMA7/test.md +++ b/TEMA7/test.md @@ -4,4 +4,38 @@ ## Задание -## Решение \ No newline at end of file +#### Вариант 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) +``` \ No newline at end of file diff --git a/TEMA7/test.py b/TEMA7/test.py new file mode 100644 index 0000000..fa1902b --- /dev/null +++ b/TEMA7/test.py @@ -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)