ответвлено от main/python-labs
икз
Этот коммит содержится в:
10
TEMA9/M0.py
Обычный файл
10
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)
|
||||
21
TEMA9/M1.py
Обычный файл
21
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
|
||||
27
TEMA9/M2.py
Обычный файл
27
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
|
||||
Двоичные данные
TEMA9/Res1212.bin
Обычный файл
Двоичные данные
TEMA9/Res1212.bin
Обычный файл
Двоичный файл не отображается.
194
TEMA9/test.md
Обычный файл
194
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 и, если это не выполняется - запрос повторяется;
|
||||
|
||||
|
||||
|
||||
\- запрашивается у пользователя целое число М - число значений в списке СС; если М>(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.
|
||||
|
||||
```
|
||||
|
||||
Ссылка в новой задаче
Block a user