# Индивидуальное контрольное задание №4 по Теме 8 Лазарев Данил, А-01-23 # Задание По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов. Разработайте функцию с 5 аргументами, создающую отсчеты сигнала в виде последовательности импульсов с заданными параметрами: амплитуда, продолжительность импульса, период (импульс + пауза), число отсчетов (аргументы функции). Сигнал должен быть записан в виде столбца в текстовый файл с заданным именем (5-й аргумент функции), а также возвращен в вызывающую программу в виде списка # Решение Модуль 1 ``` def f(A, Prod_Imp, period, num_ot, filename): signal = [] for i in range(num_ot): pos = i % period if pos < Prod_Imp: signal.append(A) else: signal.append(0.0) with open(filename, 'w', encoding='utf-8') as f: for i in signal: f.write(f"{i}\n") return signal ``` Модуль 2 ``` import Modul1 def main(): A = float(input("Амплитуда импульса: ")) Prod_Imp = int(input("Продолжительность импульса (в отсчетах): ")) period = int(input("Период (импульс + пауза, в отсчетах): ")) num_ot = int(input("Общее число отсчетов: ")) filename = input("Имя файла для сохранения: ") from Modul1 import f signal = f(A, Prod_Imp, period, num_ot, filename) print('Сгенерирован сигнал') for i in range(len(signal)): print(f"{i}: {signal[i]}") print('Все значения сохранены в файл') import matplotlib.pyplot as plt plt.title('График импульсного сигнала') plt.xlabel('Номер отсчета') plt.ylabel('Амплитуда') plt.plot(signal) plt.show() main() ``` Итоговый вывод: ``` >> Амплитуда импульса: 5 >> Продолжительность импульса (в отсчетах): 3 >> Период (импульс + пауза, в отсчетах): 10 >> Общее число отсчетов: 100 >> Имя файла для сохранения: r.txt Сгенерирован сигнал 0: 5.0 1: 5.0 2: 5.0 3: 0.0 4: 0.0 5: 0.0 6: 0.0 7: 0.0 8: 0.0 9: 0.0 10: 5.0 11: 5.0 12: 5.0 13: 0.0 14: 0.0 15: 0.0 16: 0.0 17: 0.0 18: 0.0 19: 0.0 20: 5.0 21: 5.0 22: 5.0 23: 0.0 24: 0.0 25: 0.0 26: 0.0 27: 0.0 28: 0.0 29: 0.0 30: 5.0 31: 5.0 32: 5.0 33: 0.0 34: 0.0 35: 0.0 36: 0.0 37: 0.0 38: 0.0 39: 0.0 40: 5.0 41: 5.0 42: 5.0 43: 0.0 44: 0.0 45: 0.0 46: 0.0 47: 0.0 48: 0.0 49: 0.0 50: 5.0 51: 5.0 52: 5.0 53: 0.0 54: 0.0 55: 0.0 56: 0.0 57: 0.0 58: 0.0 59: 0.0 60: 5.0 61: 5.0 62: 5.0 63: 0.0 64: 0.0 65: 0.0 66: 0.0 67: 0.0 68: 0.0 69: 0.0 70: 5.0 71: 5.0 72: 5.0 73: 0.0 74: 0.0 75: 0.0 76: 0.0 77: 0.0 78: 0.0 79: 0.0 80: 5.0 81: 5.0 82: 5.0 83: 0.0 84: 0.0 85: 0.0 86: 0.0 87: 0.0 88: 0.0 89: 0.0 90: 5.0 91: 5.0 92: 5.0 93: 0.0 94: 0.0 95: 0.0 96: 0.0 97: 0.0 98: 0.0 99: 0.0 Все значения сохранены в файл ``` ![](Ris1.png)