From 38ae116d4aef20abe6af0c4aefb8dc322a9fb018 Mon Sep 17 00:00:00 2001 From: FilippovaYI Date: Thu, 19 Mar 2026 00:55:56 +0300 Subject: [PATCH] test: done --- TEMA5/test.md | 57 +++++++++++++++++++++++ TEMA5/test.py | 25 ++++++++++ TEMA6/M2_11.bin | Bin 0 -> 251 bytes TEMA6/test.M2.py | 63 +++++++++++++++++++++++++ TEMA6/test.md | 0 TEMA7/test.md | 0 TEMA7/test.py | 39 ++++++++++++++++ TEMA7/test.txt | 8 ++++ TEMA8/Figure_1.png | Bin 0 -> 21686 bytes TEMA8/Mod1_test.py | 35 ++++++++++++++ TEMA8/Mod2_test.py | 23 ++++++++++ TEMA8/test | 99 ++++++++++++++++++++++++++++++++++++++++ TEMA8/test.md | 0 TEMA9/Figure_2.png | Bin 0 -> 44817 bytes TEMA9/M0.py | 18 ++++++++ TEMA9/M1.py | 89 ++++++++++++++++++++++++++++++++++++ TEMA9/M2.py | 55 ++++++++++++++++++++++ TEMA9/Res101.txt | 7 +++ TEMA9/covid_jan2022.txt | 20 ++++++++ TEMA9/test.md | 0 20 files changed, 538 insertions(+) create mode 100644 TEMA5/test.md create mode 100644 TEMA5/test.py create mode 100644 TEMA6/M2_11.bin create mode 100644 TEMA6/test.M2.py create mode 100644 TEMA6/test.md create mode 100644 TEMA7/test.md create mode 100644 TEMA7/test.py create mode 100644 TEMA7/test.txt create mode 100644 TEMA8/Figure_1.png create mode 100644 TEMA8/Mod1_test.py create mode 100644 TEMA8/Mod2_test.py create mode 100644 TEMA8/test create mode 100644 TEMA8/test.md create mode 100644 TEMA9/Figure_2.png create mode 100644 TEMA9/M0.py create mode 100644 TEMA9/M1.py create mode 100644 TEMA9/M2.py create mode 100644 TEMA9/Res101.txt create mode 100644 TEMA9/covid_jan2022.txt create mode 100644 TEMA9/test.md diff --git a/TEMA5/test.md b/TEMA5/test.md new file mode 100644 index 0000000..fe90c80 --- /dev/null +++ b/TEMA5/test.md @@ -0,0 +1,57 @@ +Филиппова Евгения А-01-23 +# Контрольное задание по теме 5 +## 4. Создайте список с 20 случайными, нормально распределенными (математическое ожидание равно 3400, стандартное отклонение равно 121) числами. Рассчитайте по нему среднее значение и число элементов, значение которых превышает это среднее. +## Решение +```py +import random + +mean = 3400 +std_dev = 121 +num_elements = 20 + +data_list = [] + +for i in range(num_elements): + number = random.gauss(mean, std_dev) + data_list.append(number) + +print("Сгенерированный список чисел:") +for i, value in enumerate(data_list): + print(value) + +average = sum(data_list) / len(data_list) +print(f"Среднее значение: {average:.2f}") + +count_above_average = 0 +for value in data_list: + if value > average: + count_above_average += 1 + +print(f"Количество элементов, превышающих среднее: {count_above_average}") +``` +## Вывод +```py +Сгенерированный список чисел: +3266.0057161740197 +3364.2577873809582 +3348.916608655013 +3262.5066922987626 +3308.9415900120775 +3455.0412592717685 +3206.3788580234527 +3504.741563444228 +3453.7470771740113 +3487.2596108101347 +3449.8944578223154 +3541.3210943794948 +3438.469218313021 +3352.7049681354106 +3382.8377250077247 +3421.6158576628404 +3249.3337511565533 +3143.7702393890813 +3424.510733659812 +3468.569809364851 +Среднее значение: 3376.54 +Количество элементов, превышающих среднее: 11 +``` \ No newline at end of file diff --git a/TEMA5/test.py b/TEMA5/test.py new file mode 100644 index 0000000..4f90ace --- /dev/null +++ b/TEMA5/test.py @@ -0,0 +1,25 @@ +import random + +mean = 3400 +std_dev = 121 +num_elements = 20 + +data_list = [] + +for i in range(num_elements): + number = random.gauss(mean, std_dev) + data_list.append(number) + +print("Сгенерированный список чисел:") +for i, value in enumerate(data_list): + print(value) + +average = sum(data_list) / len(data_list) +print(f"Среднее значение: {average:.2f}") + +count_above_average = 0 +for value in data_list: + if value > average: + count_above_average += 1 + +print(f"Количество элементов, превышающих среднее: {count_above_average}") diff --git a/TEMA6/M2_11.bin b/TEMA6/M2_11.bin new file mode 100644 index 0000000000000000000000000000000000000000..7a2d8a44700d0843315a3c66736c644634d17b94 GIT binary patch literal 251 zcmZo*nX1D80UF*C-eTS&-s(Us=*N*T6D$CsbSP z6b<+NZ+_KRN{aBg?{89AG(T_W7kB%&W;edZ+B|T#e|J4IhlTAGLS+BD!$;OQb!fZq zfB*k=ncn2rNV=Y!*C;%9=mk(}?w5L*3AXP0Z>L9i^qdBYz)ar%e$R5oo`*+}47`-f c#1XIX1E>pK${udu&D#gIIs9payC+o-0KZXjga7~l literal 0 HcmV?d00001 diff --git a/TEMA6/test.M2.py b/TEMA6/test.M2.py new file mode 100644 index 0000000..3db3ae3 --- /dev/null +++ b/TEMA6/test.M2.py @@ -0,0 +1,63 @@ +import math +import random +import pickle +print("\n1. Ввод имени функции") +func_name = input("Введите имя функции из библиотеки math: ") +func = eval(f"math.{func_name}") + +print("\n2. Создание кортежа случайных чисел") +temp_list = [] +for i in range(20): + number = random.randint(11, 40) + temp_list.append(number) + +numbers_tuple = tuple(temp_list) +print("Сгенерированный кортеж:") +print(numbers_tuple) + +print("\n3. Применение функции к элементам кортежа") +result_list = [] +for value in numbers_tuple: + result = func(value) + result_list.append(result) + +print("\n4. Запись в бинарный файл") +filename = "M2_11.bin" +print(f"Имя файла: {filename}") + +file = open(filename, 'wb') +pickle.dump(numbers_tuple, file) +pickle.dump(result_list, file) +file.close() +print("Данные успешно записаны в файл") +print("\nПроверка записи (чтение из файла):") +file = open(filename, 'rb') +read_tuple = pickle.load(file) +read_list = pickle.load(file) +file.close() + +print(f"Прочитанный кортеж (первые 5 элементов): {read_tuple[:5]}") +print(f"Прочитанный список (первые 5 элементов): {[round(x, 3) for x in read_list[:5]]}") +# 5. Расчет среднего значения разностей элементов на соседних четных и нечетных позициях +print("\n5. Расчет среднего значения разностей") + +differences = [] +i = 0 +while i < len(result_list) - 1: + diff = result_list[i] - result_list[i+1] + differences.append(diff) + i = i + 2 +print(f"Найдено {len(differences)} разностей") +if len(differences) > 0: + sum_diff = 0 + for d in differences: + sum_diff = sum_diff + d + average_diff = sum_diff / len(differences) + print("\nРазности между соседними четными и нечетными позициями:") + for j in range(len(differences)): + d_1 = j * 2 + print(f" {result_list[d_1]:.3f} - {result_list[d_1+1]:.3f} = {differences[j]:.3f}") + + print(f"\nСреднее значение разностей: {average_diff:.6f}") +else: + print("Недостаточно элементов для вычисления разностей") diff --git a/TEMA6/test.md b/TEMA6/test.md new file mode 100644 index 0000000..e69de29 diff --git a/TEMA7/test.md b/TEMA7/test.md new file mode 100644 index 0000000..e69de29 diff --git a/TEMA7/test.py b/TEMA7/test.py new file mode 100644 index 0000000..7f84d3a --- /dev/null +++ b/TEMA7/test.py @@ -0,0 +1,39 @@ +def read_file_to_list(filename): + result = [] + try: + f = open(filename, 'r', encoding='utf-8') + lines = f.readlines() + f.close() + for line in lines: + line = line.strip() + if line == '': + continue + elements = line.split(',') + row = [] + for elem in elements: + elem = elem.strip() + if elem.isdigit() or (elem.startswith('-') and elem[1:].isdigit()): + row.append(int(elem)) + else: + try: + if '.' in elem: + parts = elem.split('.') + if len(parts) == 2: + if (parts[0].isdigit() or (parts[0].startswith('-') and parts[0][1:].isdigit())) and parts[1].isdigit(): + row.append(float(elem)) + else: + row.append(elem) + else: + row.append(elem) + else: + row.append(elem) + except: + row.append(elem) + + result.append(row) + + except FileNotFoundError: + print(f"Ошибка: Файл '{filename}' не найден!") + return [] + + return result diff --git a/TEMA7/test.txt b/TEMA7/test.txt new file mode 100644 index 0000000..181b779 --- /dev/null +++ b/TEMA7/test.txt @@ -0,0 +1,8 @@ +1,2,3,4,5 +100,200,300 +3.14,2.718,1.618,0.577 +один,два,три,четыре,пять +-5,-10,-15,-20 +10.5,20.7,30.9 +строка1,строка2,строка3 +смешанные,данные,15,20.5,-7 \ No newline at end of file diff --git a/TEMA8/Figure_1.png b/TEMA8/Figure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e3476ec318a74be9daad067d6e0deed046573fd0 GIT binary patch literal 21686 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 K_Q@HinEwLXyBJCU literal 0 HcmV?d00001 diff --git a/TEMA9/M0.py b/TEMA9/M0.py new file mode 100644 index 0000000..81c788b --- /dev/null +++ b/TEMA9/M0.py @@ -0,0 +1,18 @@ +import M2 +import pylab +signal, t, F = M2.process_signal() +indices = list(range(len(signal))) +pylab.figure(figsize=(12, 6)) +pylab.plot(indices, signal, 'b-o', linewidth=2, markersize=4) +pylab.xlabel('Номер отсчета') +pylab.ylabel('Значение сигнала') +pylab.title('График сигнала (приращения заболеваемости COVID-19)') +pylab.grid(True) +pylab.axhline(y=0, color='r', linestyle='--', linewidth=1) + +N = len(signal) // 2 +pylab.axvline(x=N, color='g', linestyle='-', linewidth=2, label=f'Граница N={N}') +pylab.legend() +pylab.show() + +print("График отображен.") diff --git a/TEMA9/M1.py b/TEMA9/M1.py new file mode 100644 index 0000000..3800bfb --- /dev/null +++ b/TEMA9/M1.py @@ -0,0 +1,89 @@ +import math + +def function1(signal, N): + """ + Функция 1: рассчитывает оценки средних и дисперсий по первым N отсчетам + и по оставшейся части сигнала + + Аргументы: + signal - ряд отсчетов сигнала + N - целочисленный параметр (количество первых отсчетов) + + Возвращает: + M1, M2, C1, C2 - средние и дисперсии по двум частям сигнала + """ + part1 = signal[:N] + part2 = signal[N:] + + if len(part1) > 0: + M1 = sum(part1) / len(part1) + sum_sq1 = 0 + for x in part1: + sum_sq1 += (x - M1) ** 2 + C1 = sum_sq1 / (len(part1) - 1) if len(part1) > 1 else 0 + else: + M1 = 0 + C1 = 0 + + if len(part2) > 0: + M2 = sum(part2) / len(part2) + sum_sq2 = 0 + for x in part2: + sum_sq2 += (x - M2) ** 2 + C2 = sum_sq2 / (len(part2) - 1) if len(part2) > 1 else 0 + else: + M2 = 0 + C2 = 0 + + return M1, M2, C1, C2 + + +def function2(filename): + """ + Функция 2: читает данные из файла, передает их в функцию 1, + отображает результаты и рассчитывает статистики t и F + + Аргумент: + filename - имя текстового файла с отсчетами сигнала + + Возвращает: + signal - прочитанный сигнал + t, F - рассчитанные статистики + M1, M2, C1, C2 - промежуточные результаты + """ + file = open(filename, 'r') + content = file.read() + file.close() + + elements = content.replace(',', ' ').split() + signal = [] + for elem in elements: + if elem.strip(): + signal.append(float(elem)) + + NN = len(signal) + N = NN // 2 + print(f"Параметр N (половина длины) = {N}") + + M1, M2, C1, C2 = function1(signal, N) + + print(f"Первые {N} отсчетов: M1 = {M1:.4f}, C1 = {C1:.4f}") + print(f"Оставшиеся {NN-N} отсчетов: M2 = {M2:.4f}, C2 = {C2:.4f}") + + if NN > 2 and (C1 * N + C2 * (NN - N)) > 0: + numerator = abs(M1 - M2) + denominator = math.sqrt((C1 * N + C2 * (NN - N)) / (NN - 2)) + t = numerator / denominator if denominator != 0 else 0 + else: + t = 0 + print("Недостаточно данных для расчета t") + + if C2 > 0 and C1 > 0: + F = max(C1, C2) / min(C1, C2) + else: + F = 1 + + print(f"Статистика t = {t:.6f}") + print(f"Статистика F = {F:.6f}") + + return signal, t, F, M1, M2, C1, C2 diff --git a/TEMA9/M2.py b/TEMA9/M2.py new file mode 100644 index 0000000..af85952 --- /dev/null +++ b/TEMA9/M2.py @@ -0,0 +1,55 @@ +import os +import M1 + +def process_signal(): + """ + Основная функция модуля M2 + Запрашивает имя файла, проверяет его существование, + вызывает функцию2 из M1 и записывает результаты в файл Res101.txt + """ + # Запрос имени файла с проверкой существования + while True: + filename = input("\nВведите имя файла с данными: ").strip() + + if os.path.exists(filename): + print(f"Файл '{filename}' найден") + break + else: + print(f"Файл '{filename}' не существует. Повторите ввод.") + # Вызов функции 2 из модуля M1 + signal, t_stat, F_stat, mean1, mean2, var1, var2 = M1.function2(filename) + + print("Отсчеты сигнала:") + for i in range(len(signal)): + print(f" {i:2d}: {signal[i]:8.2f}") + print("\n--- Анализ результатов ---") + messages = [] + if t_stat > 2: + msg_t = "Сигнал сильно меняется" + print(f"t={t_stat:.4f} > 2: {msg_t}") + else: + msg_t = "Сигнал заметно не меняется" + print(f"t={t_stat:.4f} ≤ 2: {msg_t}") + messages.append(msg_t) + + if F_stat > 4: + msg_F = "Разброс сигнала сильно меняется" + print(f"F={F_stat:.4f} > 4: {msg_F}") + else: + msg_F = "Разброс сигнала заметно не меняется" + print(f"F={F_stat:.4f} ≤ 4: {msg_F}") + messages.append(msg_F) + res_filename = "Res101.txt" + file = open(res_filename, 'w', encoding='utf-8') + file.write(f"Исходный файл: {filename}\n") + file.write(f"Количество отсчетов: {len(signal)}\n") + file.write(f"t-статистика: {t_stat:.6f}\n") + file.write(f"F-статистика: {F_stat:.6f}\n") + file.write("-"*40 + "\n") + file.write(f"Вывод 1: {msg_t}\n") + file.write(f"Вывод 2: {msg_F}\n") + file.close() + + print(f"\nРезультаты сохранены в файл '{res_filename}'") + + return signal, t_stat, F_stat diff --git a/TEMA9/Res101.txt b/TEMA9/Res101.txt new file mode 100644 index 0000000..18f4213 --- /dev/null +++ b/TEMA9/Res101.txt @@ -0,0 +1,7 @@ +Исходный файл: covid_jan2022.txt +Количество отсчетов: 20 +t-статистика: 1.480665 +F-статистика: 6.441532 +---------------------------------------- +Вывод 1: Сигнал заметно не меняется +Вывод 2: Разброс сигнала сильно меняется diff --git a/TEMA9/covid_jan2022.txt b/TEMA9/covid_jan2022.txt new file mode 100644 index 0000000..fda9f7c --- /dev/null +++ b/TEMA9/covid_jan2022.txt @@ -0,0 +1,20 @@ +-440 +-131 +-456 +1419 +-167 +-322 +-416 +1695 +421 +3209 +2665 +3359 +2051 +1496 +526 +2647 +4951 +10663 +7699 +5993 \ No newline at end of file diff --git a/TEMA9/test.md b/TEMA9/test.md new file mode 100644 index 0000000..e69de29