форкнуто от main/python-labs
main
Родитель
8bc32e1d13
Сommit
2e68240b8b
@ -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
|
||||
```
|
@ -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 "<pyshell#6>", line 1, in <module>
|
||||
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
|
Загрузка…
Ссылка в новой задаче