\# Тест по модулю 3, тема 9 (вариант 7) Бережков Дмитрий А-01-23 \## Задание: M3\_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. \## Решение: ```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 def func2(CC, KK):   """   Создание списка НН (с числом элементов, равным длине СС) с целыми значениями из КК,   близкими к соответствующим элементам в СС   """   HH = \[]   for i in CC:   cl = min(KK, key= lambda x: abs(x - i))   HH.append(cl)   return HH ``` ```py import M1 import random def main():   while True:   try:   T1 = int(input("Введите первую границу: "))   T2 = int(input("Введите вторую границу: "))   if T1 < T2:   break   else:   print("Ошибка. Первая граница должна быть меньше второй границы.")   except ValueError:   print("Ошибка: введите целое число.")   while True:   try:   M = int(input("Введите количество значений в списке СС: "))   break   except ValueError:   print("Ошибка: введите целое число.")   if M > (T2 - T1):   M = T2 - T1   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 ``` ```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) ``` ```py Ђ• }”(ЊCC”]”(KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKeЊKK”]”(KKKKKeЊHH”]”(KKKKKeu. ```