From 410c4890dc1e75ccfb5483ff1afa1fafc73e873c Mon Sep 17 00:00:00 2001 From: BerezhkovDA Date: Fri, 19 Dec 2025 10:46:51 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B8=D0=BA=D0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA9/M0.py | 10 +++ TEMA9/M1.py | 21 +++++ TEMA9/M2.py | 27 +++++++ TEMA9/Res1212.bin | Bin 0 -> 1063 bytes TEMA9/test.md | 194 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 252 insertions(+) create mode 100644 TEMA9/M0.py create mode 100644 TEMA9/M1.py create mode 100644 TEMA9/M2.py create mode 100644 TEMA9/Res1212.bin create mode 100644 TEMA9/test.md diff --git a/TEMA9/M0.py b/TEMA9/M0.py new file mode 100644 index 0000000..eabbad1 --- /dev/null +++ b/TEMA9/M0.py @@ -0,0 +1,10 @@ +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) diff --git a/TEMA9/M1.py b/TEMA9/M1.py new file mode 100644 index 0000000..8c92ea5 --- /dev/null +++ b/TEMA9/M1.py @@ -0,0 +1,21 @@ +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 diff --git a/TEMA9/M2.py b/TEMA9/M2.py new file mode 100644 index 0000000..0ab10c2 --- /dev/null +++ b/TEMA9/M2.py @@ -0,0 +1,27 @@ +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 diff --git a/TEMA9/Res1212.bin b/TEMA9/Res1212.bin new file mode 100644 index 0000000000000000000000000000000000000000..6c658636cf523f2a2f6a980612330bfa4399b515 GIT binary patch literal 1063 zcmZ9Ly{!U441^J)iTjO-Xo3W3YapZqLL>^f@aPwR`!NX*owS}Ed&c&@_vtgA4*l=7 zpSR=ny5IM68{5+6`Yml}Yej3F*EUtWR5a9S?$KIjkg+1Lp>xL{d+JE)OTyl zFADC2DD!bgx4@z(3q0T*j1NClV(-30B4@+2 z)pQczzB>D{Q#f&-_u>{&q%zuiU_K~u&n&zH@qLov=G+$9IJAByP8KX)0Qag=lYAoc zoNi{R7uE9?)F%RWT5ebk=f+Omt`mdrO*&Kqmo@vxc5JQx!}}=8OhLEXAN0I@0qD}$ AumAu6 literal 0 HcmV?d00001 diff --git a/TEMA9/test.md b/TEMA9/test.md new file mode 100644 index 0000000..e08ee15 --- /dev/null +++ b/TEMA9/test.md @@ -0,0 +1,194 @@ +\# Тест по модулю 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. + +``` +