From 688b61933762cff0f00b331d25c1c643b587db70 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=2011=20=D0=B0=D1=83=D0=B4=D0=B8?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D0=B8=20=D0=9A-522?= Date: Mon, 15 Dec 2025 12:13:20 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=BA=D0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA9/test.md | 149 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 TEMA9/test.md diff --git a/TEMA9/test.md b/TEMA9/test.md new file mode 100644 index 0000000..bda610a --- /dev/null +++ b/TEMA9/test.md @@ -0,0 +1,149 @@ +# Индивидуальное задание по модулю 3 + +Криви Анастасия, А-02-23 +Вариант 7 + +# Задание + +1) Создайте модуль М1, содержащий две функции: + +- функция 1: аргументы - три целочисленных параметра: Т1, Т2 и М; функция должна рассчитать и вернуть список СС с М неповторяющимися целыми числами в интервале значений между Т1 и Т2; + +- функция 2: аргументы - список СС с неповторяющимися целыми числами и список или кортеж КК с целыми числами; функция должна создать список НН, с числом элементов, равным длине СС, и с целыми значениями из КК, близкими к соответствующим элементам в СС; так, элемент КК[i] считается близким к элементу CC[j], если для него абсолютная разность |KK[i]-CC[j]| - наименьшая по всем CC[j]. + +2) Создайте еще один модуль М2, в котором должны выполняться операции: + +- запрашиваются у пользователя целочисленные границы диапазона значений Т1 и Т2; проверяется T1(T2-T1), то принимается М=Т2-Т1; + +- с помощью функции 1 создается и отображается список СС; + +- создается список КК с 500 случайными целыми числами в диапазоне значений от Т1 до Т2; + +- с помощью функции 2 рассчитывается список НН; результат отображается на экране. + +3) Создайте модуль М0 - главную программу, которая вызывает М2 и записывает списки КК, СС и НН в бинарный файл Res1212.bin. + +4) Проверьте программу при двух наборах исходных данных: + +- Т1=34, Т2=78, М= 10 +- Т1=25, Т2=30, М=8. + +# Решение + +## Пункт первый - модуль М1 + +Создание первой функции: аргументы - три целочисленных параметра: Т1, Т2 и М; функция должна рассчитать и вернуть список СС с М неповторяющимися целыми числами в интервале значений между Т1 и Т2; +```py +import random + +def func1(T1, T2, M): + """ + Рассчет списка СС с M неповторяющимися целыми числами + в интервале между T1 и T2 + """ + if T2 - T1 < M: + M = T2 - T1 + + CC = random.sample(range(T1, T2), M) + return CC +``` + +Создание второй функции: аргументы - список СС с неповторяющимися целыми числами и список или кортеж КК с целыми числами; функция должна создать список НН, с числом элементов, равным длине СС, и с целыми значениями из КК, близкими к соответствующим элементам в СС; так, элемент КК[i] считается близким к элементу CC[j], если для него абсолютная разность |KK[i]-CC[j]| - наименьшая по всем CC[j] + +```py +def func2(CC, KK): + """ + Создание списка НН (с числом элементов, равным длине СС) с целыми значениями из КК, + близкими к соответствующим элементам в СС + """ + HH = [] + for i in CC: + cl = min(KK, key= lambda x: abs(x - i)) + HH.append(cl) + return HH +``` +## Пункт второй - модуль М2 + +Запрос у пользователя целочисленных границ диапазона значений Т1 и Т2; проверка условия T1(T2-T1), то принимается М=Т2-Т1, иначе значение М не изменяется +```py + if M > (T2 - T1): + M = T2 - T1 +``` +С помощью функции 1, созданной в пункте первом, создается и отображается список СС. Создание списка КК с 500 случайными целыми числами в диапазоне значений от Т1 до Т2. С помощью функции 2, созданной в пункте первом, рассчитывается список НН, а результат отображается на экране. + +```py + CC = M1.func1(T1, T2, M) + print("Список СС:", CC) + KK = [random.randint(T1, T2) for _ in range(500)] + HH = M1.func2(CC, KK) + print("Список НН:", HH) + + return KK, CC, HH +``` +и завершение выполнение второго пункта, а именно создание модуля М2. +## Пункт третий +Создание модуля М0 - главной программы, которая вызывает М2 и записывает списки КК, СС и НН в бинарный файл Res1212.bin. + +```py +import M2 +import pickle + +CC, KK, HH = M2.main() + +data_M2 = {'CC': CC,'KK': KK,'HH': HH} + +filename = "Res1212.bin" +with open(filename, 'wb') as file: + pickle.dump(data_M2, file) +``` + +## Тестирование +Вывод с тестовыми значениями 1 (Т1=34, Т2=78, М= 10) +```py +Введите первую границу: 34 +Введите вторую границу: 78 +Введите количество значений в списке СС: 10 +Список СС: [73, 54, 66, 42, 46, 48, 58, 72, 52, 75] +Список НН: [73, 54, 66, 42, 46, 48, 58, 72, 52, 75] +``` +Фрагмент файла с бит(Res1212.bin) +```py +Ђ• ]”(K.K&K4KMK6K?KEK3KGK0e]”(K9KNK8K2KDK;KKK3KKKNK;K+K6KJK%K/KGKHK*K=KAKBKIK"K:K(K4KLK$K(KMK0K6K#KKKHK5K?K0K+K7K&K/KEK3K1KDK?K;KCK,K?K3K/K3K