From 37b15e5294e6acf09660b6f81c99d6e9afd5b6d0 Mon Sep 17 00:00:00 2001 From: DobrovolskaY Date: Mon, 15 Dec 2025 09:04:52 +0000 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20'TEM?= =?UTF-8?q?A9'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA9/M0.py | 20 ++++++++++++++++++++ TEMA9/M1.py | 43 +++++++++++++++++++++++++++++++++++++++++++ TEMA9/M2.py | 38 ++++++++++++++++++++++++++++++++++++++ TEMA9/input_data.bin | Bin 0 -> 210 bytes 4 files changed, 101 insertions(+) create mode 100644 TEMA9/M0.py create mode 100644 TEMA9/M1.py create mode 100644 TEMA9/M2.py create mode 100644 TEMA9/input_data.bin diff --git a/TEMA9/M0.py b/TEMA9/M0.py new file mode 100644 index 0000000..fa9641c --- /dev/null +++ b/TEMA9/M0.py @@ -0,0 +1,20 @@ +import matplotlib.pyplot as plt +from M2 import process_data_and_save_results + +if __name__ == "__main__": + print("--- Запуск главной программы M0 ---") + + + sps1_for_plot = process_data_and_save_results() + + + plt.figure(figsize=(10, 6)) + plt.plot(sps1_for_plot, marker='.', linestyle='-', color='skyblue', label='SPS1 Values') + plt.title("График упорядоченного списка SPS1") + plt.xlabel("Индекс отсчета") + plt.ylabel("Значение элемента") + plt.grid(True) + plt.legend() + plt.show() + + print("\n Программа завершена") diff --git a/TEMA9/M1.py b/TEMA9/M1.py new file mode 100644 index 0000000..e75eec3 --- /dev/null +++ b/TEMA9/M1.py @@ -0,0 +1,43 @@ +import math + +def process_tuples(tuple1, tuple2): + temp_list = [] + for item in tuple1: + temp_list.append((item, 1)) + for item in tuple2: + temp_list.append((item, 2)) + + temp_list.sort(key=lambda x: x[0]) + + sps1 = [item[0] for item in temp_list] + sps2 = [item[1] for item in temp_list] + + return sps1, sps2 + +def calculate_stats(numeric_list): + n = len(numeric_list) + mean = sum(numeric_list) / n + + min_val = min(numeric_list) + max_val = max(numeric_list) + + + sorted_list = sorted(numeric_list) + if n % 2 == 1: + median = sorted_list[n // 2] + else: + median = (sorted_list[n // 2 - 1] + sorted_list[n // 2]) / 2 + if n <= 1: + std_dev = 0.0 + else: + variance = sum((x - mean) ** 2 for x in numeric_list) / (n - 1) + std_dev = math.sqrt(variance) + + return { + "Среднее": mean, + "Наименьшее": min_val, + "Наибольшее": max_val, + "Медиана": median, + "Стандартное отклонение": std_dev + } + diff --git a/TEMA9/M2.py b/TEMA9/M2.py new file mode 100644 index 0000000..a1ddd6e --- /dev/null +++ b/TEMA9/M2.py @@ -0,0 +1,38 @@ +import os +import pickle +from M1 import process_tuples, calculate_stats + +def process_data_and_save_results(): + filename = "" + + while not os.path.exists(filename): + filename = input("Введите имя бинарного файла с данными (например, input_data.bin): ") + if not os.path.exists(filename): + print(f"Файл '{filename}' не найден. Попробуйте еще раз.") + + + with open(filename, 'rb') as f: + krt1 = pickle.load(f) + krt2 = pickle.load(f) + print(f"\nДанные успешно считаны из файла '{filename}'.") + print(f"KRT1 (первые 5 элементов): {krt1[:5]}") + print(f"KRT2 (первые 5 элементов): {krt2[:5]}") + + sps1, sps2 = process_tuples(krt1, krt2) + print("\n--- Результаты функции 1 ---") + print(f"SPS1 (упорядоченный список элементов): {sps1[:10]}... (длина {len(sps1)})") + print(f"SPS2 (список происхождения элементов): {sps2[:10]}... (длина {len(sps2)})") + + + stats = calculate_stats(sps1) + print("\n--- Результаты функции 2 (для SPS1) ---") + for key, value in stats.items(): + print(f"{key}: {value:.2f}") + + output_filename = "Res22.txt" + with open(output_filename, 'w') as f: + for val1, val2 in zip(sps1, sps2): + f.write(f"{val1} {val2}\n") + print(f"\nРезультаты функции 1 записаны в файл '{output_filename}'.") + + return sps1 diff --git a/TEMA9/input_data.bin b/TEMA9/input_data.bin new file mode 100644 index 0000000000000000000000000000000000000000..4e8796973261014c4699ffafc2a37d10353bc5c3 GIT binary patch literal 210 zcmX|**%87p3`F@z3E?u}DJx?zuxzyS)YIVh{!{oFz$3g+^WYQ mgE;W9j_W{kweY_&0aXGEbQl&itkl<~wsaIl{t>@f6C*!yLo1~K literal 0 HcmV?d00001