From 2cc1b331053efed3c881345379280e626a43d580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=20=E2=84=96=204=20=D0=B0=D1=83=D0=B4=D0=B8?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D0=B8=20=D0=96-113?= Date: Mon, 8 Dec 2025 12:46:03 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82=D0=BE=D0=B2=D0=BE?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BC?= =?UTF-8?q?=D0=BE=D0=B4=D1=83=D0=BB=D1=8F=20=E2=84=963?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tests/test3/M0.py | 26 ++++++++++++++++++++++++++ Tests/test3/M1.py | 26 ++++++++++++++++++++++++++ Tests/test3/M2.py | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 Tests/test3/M0.py create mode 100644 Tests/test3/M1.py create mode 100644 Tests/test3/M2.py diff --git a/Tests/test3/M0.py b/Tests/test3/M0.py new file mode 100644 index 0000000..bd08921 --- /dev/null +++ b/Tests/test3/M0.py @@ -0,0 +1,26 @@ +# M0.py +import M2 # Импортируем модуль M2 +import matplotlib.pyplot as plt + +def plot_results(): + """ + Вызывает M2, считывает результаты из файла и отображает их в виде графика. + """ + M2.run_analysis() # Запускаем анализ из модуля M2 + + try: + with open("Res11.bin", 'r') as f: + SS3 = [float(line.strip()) for line in f] + except FileNotFoundError: + print("Ошибка: Файл Res11.bin не найден.") + return + + plt.plot(SS3) + plt.xlabel("Индекс") + plt.ylabel("Значение") + plt.title("График списка SS3") + plt.grid(True) + plt.show() + +if __name__ == "__main__": + plot_results() diff --git a/Tests/test3/M1.py b/Tests/test3/M1.py new file mode 100644 index 0000000..c949040 --- /dev/null +++ b/Tests/test3/M1.py @@ -0,0 +1,26 @@ +# M1.py +import random + +def generate_data_file(filename, num_samples=50, mean=0, std_dev=1): + """Генерирует файл с нормально распределенными случайными данными.""" + import numpy as np + data = np.random + print(f"Файл {filename} сгенерирован.") + +def read_signal_and_shift(filename, TAU, K): + N = len(SPS1) + SPS2 = [0] * (TAU - 1) + [K * SPS1[i - TAU] for i in range(TAU - 1, N)] + + return SPS1, SPS2 + +def calculate_D(SS1, SS2, TT): + + N = len(SS1) + SR1 = sum(SS1) / N + SR2 = sum(SS2) / len(SS2) + + D = 0 + for i in range(TT, N): + D += (SS1[i] - SR1) * (SS2[i - TT] - SR2) + + return D diff --git a/Tests/test3/M2.py b/Tests/test3/M2.py new file mode 100644 index 0000000..8099b58 --- /dev/null +++ b/Tests/test3/M2.py @@ -0,0 +1,39 @@ +# M2.py +import M1 # Импортируем модуль M1 +import random + +def run_analysis(): + + while True: + filename = input("Введите имя текстового файла с данными: ") + try: + with open(filename, 'r'): + break + except FileNotFoundError: + print("Файл не найден. Повторите ввод.") + + while True: + try: + TAU = int(input("Введите значение параметра TAU (>= 0): ")) + if TAU >= 0: + break + else: + print("TAU должно быть >= 0.") + except ValueError: + print("Некорректный ввод. Введите целое число.") + + K = random.uniform(2, 7) + SPS1, SPS2 = M1.read_signal_and_shift(filename, TAU, K) + + print("SPS1:", SPS1) + print("SPS2:", SPS2) + + SS3 = [] + for TT in range(0, TAU + 6): + D = M1.calculate_D(SPS1, SPS2, TT) + SS3.append(D) + + with open("Res11.bin", 'w') as f: + for value in SS3: + f.write(str(value) + '\n') + print("Результаты записаны в файл Res11.bin")