diff --git a/TEMA7/test.md b/TEMA7/test.md index 55fa032..b24e3e3 100644 --- a/TEMA7/test.md +++ b/TEMA7/test.md @@ -1,99 +1,99 @@ -# Индивидуальное контрольное задание по Теме 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 +# Индивидуальное контрольное задание по Теме 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 ``` \ No newline at end of file