diff --git a/TEMA7/iz.md b/TEMA7/iz.md new file mode 100644 index 0000000..0dc668b --- /dev/null +++ b/TEMA7/iz.md @@ -0,0 +1,56 @@ +# Разработайте функцию с 5 аргументами, создающую отсчеты сигнала в виде +#последовательности импульсов с заданными параметрами: амплитуда, +#продолжительность импульса, период (импульс + пауза), число отсчетов +#(аргументы функции). Сигнал должен быть записан в виде столбца в текстовый файл +#с заданным именем (5-й аргумент функции), а также возвращен в вызывающую +#программу в виде списка. +```py +#Генирируем послед испульсов, возвращаем список отсчетов сигнала +def generate_pulse_signal(amplitude, pulse_duration, period, num_samples, filename): + signal = [] + + with open(filename, 'w') as file: + for i in range(num_samples): + # Определение позиции в периоде + position_in_period = i % period + + # Генерация импульса + if position_in_period < pulse_duration: + value = amplitude + else: + value = 0 + + signal.append(value) + file.write(f"{value}\n") + + return signal + +# Пример использования +if __name__ == "__main__": + pulse_signal = generate_pulse_signal( + amplitude=5.0, + pulse_duration=3, + period=10, + num_samples=30, + filename="iz.txt" + ) + print(f"Сгенерировано {len(pulse_signal)} отсчетов импульсного сигнала") +Сгенерировано 30 отсчетов импульсного сигнала +print("Первые 10 строк из файла:") +with open("iz.txt", 'r') as file: + for i, line in enumerate(file): + if i < 10: + print(f"Строка {i+1}: {line.strip()}") + else: + break +Строка 1: 5.0 +Строка 2: 5.0 +Строка 3: 5.0 +Строка 4: 0 +Строка 5: 0 +Строка 6: 0 +Строка 7: 0 +Строка 8: 0 +Строка 9: 0 +Строка 10: 0 +``` \ No newline at end of file diff --git a/TEMA7/iz.py b/TEMA7/iz.py new file mode 100644 index 0000000..e6fe1ba --- /dev/null +++ b/TEMA7/iz.py @@ -0,0 +1,74 @@ +Python 3.13.7 (tags/v3.13.7:bcee1c3, Aug 14 2025, 14:15:11) [MSC v.1944 64 bit (AMD64)] on win32 +Enter "help" below or click "Help" above for more information. +def generate_pulse_signal(amplitude, pulse_duration, period, num_samples, filename): + signal = [] + + with open(filename, 'w') as file: + for i in range(num_samples): + # Определение позиции в периоде + position_in_period = i % period + + # Генерация импульса + if position_in_period < pulse_duration: + value = amplitude + else: + value = 0 + + signal.append(value) + file.write(f"{value}\n") + + return signal + +if __name__ == "__main__": + pulse_signal = generate_pulse_signal( + amplitude=5.0, + pulse_duration=3, +... period=10, +... num_samples=30, +... filename="iz.txt" +... ) +... print(f"Сгенерировано {len(pulse_signal)} отсчетов импульсного сигнала") +... +... +Сгенерировано 30 отсчетов импульсного сигнала +>>> print("Первые 10 строк из файла:") +... with open("iz.txt", 'r') as file: +... for i, line in enumerate(file): +... if i < 10: +... print(f"Строка {i+1}: {line.strip()}") +... else: +... break +... +SyntaxError: multiple statements found while compiling a single statement +>>> print("Первые 10 строк из файла:") +Первые 10 строк из файла: +>>> with open("pulse_signal.txt", 'r') as file: +... for i, line in enumerate(file): +... if i < 10: +... print(f"Строка {i+1}: {line.strip()}") +... else: +... break +... +... +Traceback (most recent call last): + File "", line 1, in + with open("pulse_signal.txt", 'r') as file: +FileNotFoundError: [Errno 2] No such file or directory: 'pulse_signal.txt' +>>> with open("iz.txt", 'r') as file: +... for i, line in enumerate(file): +... if i < 10: +... print(f"Строка {i+1}: {line.strip()}") +... else: +... break +... +... +Строка 1: 5.0 +Строка 2: 5.0 +Строка 3: 5.0 +Строка 4: 0 +Строка 5: 0 +Строка 6: 0 +Строка 7: 0 +Строка 8: 0 +Строка 9: 0 +Строка 10: 0 diff --git a/TEMA7/iz.txt b/TEMA7/iz.txt new file mode 100644 index 0000000..e69de29