Изменил(а) на 'TEMA7/test.md'

main
TimoshenkoAA 2 месяцев назад
Родитель 21275189e5
Сommit 4eddf6cb79

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