# Индивидуальное контрольное задание по Теме 7 Выполнил: Тимошенко А.А. Проверил: Козлюк Д.А. ## Задание: Вариант 1: Разработайте функцию с 5 аргументами, создающую последовательность отсчетов синусоидального сигнала с заданными параметрами: амплитуда, период, фаза, число отсчетов (аргу-менты функции). Сигнал должен быть записан в виде столбца в текстовый файл с заданным именем (5-й аргумент функции), а также возвращен в вызывающую программу в виде списка. Сделай это задание, опираясь на команды из этого отчета ## Решение: ``` import math def generate_sinusoid(amplitude, period, phase, num_samples, filename): signal_list = [] for i in range(num_samples): #здесь я вычисляю значения синусоиды по формуле value = amplitude * math.sin(2 * math.pi * i / period + phase) signal_list.append(value) #записываю в текстовый файл в виде столбца with open(filename, 'w', encoding='utf-8') as file: for value in signal_list: file.write(f"{value}\n") return signal_list #пример использования функции: if __name__ == "__main__": #параметры сигнала A = 2.0 #амплитуда T = 10 #период phi = 0 #фаза N = 50 #число отсчетов file_name = "sinusoid_signal.txt" #вызов функции signal = generate_sinusoid(A, T, phi, N, file_name) #проверка результата print(f"Сгенерировано {len(signal)} отсчетов") print(f"Первые 10 значений: {signal[:10]}") print(f"Файл сохранен как: {file_name}") ``` Вывод в терминал: ``` Сгенерировано 50 отсчетов Первые 10 значений: [0.0, 1.1755705045849463, 1.902113032590307, 1.9021130325903073, 1.1755705045849465, 2.4492935982947064e-16, -1.175570504584946, -1.902113032590307, -1.9021130325903073, -1.1755705045849467] Файл сохранен как: sinusoid_signal.txt ``` Вывод в текстовый файл sinusoid_signal.txt: ``` 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 -9.797174393178826e-16 1.1755705045849454 1.9021130325903057 1.9021130325903075 1.1755705045849472 1.2246467991473533e-15 -1.1755705045849452 -1.9021130325903068 -1.9021130325903075 -1.1755705045849474 -1.4695761589768238e-15 1.175570504584945 1.9021130325903066 1.9021130325903077 1.1755705045849476 1.7145055188062944e-15 -1.175570504584945 -1.9021130325903066 -1.9021130325903077 -1.1755705045849478 -1.959434878635765e-15 1.175570504584939 1.9021130325903066 1.9021130325903077 1.1755705045849538 2.204364238465236e-15 -1.1755705045849445 -1.9021130325903086 -1.902113032590308 -1.175570504584954 ```