From af3fb08055fab50c92b8e9db4469ae249c9e7d6e Mon Sep 17 00:00:00 2001 From: Dmitry Kolomeytsev Date: Mon, 15 Dec 2025 11:30:43 +0300 Subject: [PATCH] ikz done --- TEMA9/ikz/M0.py | 22 +++++ TEMA9/ikz/M1.py | 53 +++++++++++ TEMA9/ikz/M2.py | 26 ++++++ TEMA9/ikz/NAMES.txt | 25 ++++++ TEMA9/ikz/NUM50.txt | 50 +++++++++++ TEMA9/ikz/RES2.txt | 2 + TEMA9/ikz/RES2a.bin | Bin 0 -> 28 bytes TEMA9/ikz/test.md | 174 ++++++++++++++++++++++++++++++++++++ TEMA9/pictures/Figure_2.png | Bin 0 -> 16804 bytes TEMA9/pictures/NUM50.png | Bin 0 -> 12471 bytes TEMA9/test.md | 7 -- 11 files changed, 352 insertions(+), 7 deletions(-) create mode 100644 TEMA9/ikz/M0.py create mode 100644 TEMA9/ikz/M1.py create mode 100644 TEMA9/ikz/M2.py create mode 100644 TEMA9/ikz/NAMES.txt create mode 100644 TEMA9/ikz/NUM50.txt create mode 100644 TEMA9/ikz/RES2.txt create mode 100644 TEMA9/ikz/RES2a.bin create mode 100644 TEMA9/ikz/test.md create mode 100644 TEMA9/pictures/Figure_2.png create mode 100644 TEMA9/pictures/NUM50.png delete mode 100644 TEMA9/test.md diff --git a/TEMA9/ikz/M0.py b/TEMA9/ikz/M0.py new file mode 100644 index 0000000..4d254ed --- /dev/null +++ b/TEMA9/ikz/M0.py @@ -0,0 +1,22 @@ +# M0.py +import pickle +import matplotlib.pyplot as plt +import M2 + +def write_bin(filename,data): + with open(filename,"wb") as f: + pickle.dump(data,f) + +def main(): + CC2=M2.run() + x=[] + i=0 + while i 0: + f.write(" ") + f.write(str(CC[i])) + in_line = in_line + 1 + + if in_line == n: + f.write("\n") + in_line = 0 + + i = i + 1 + + if in_line != 0: + f.write("\n") diff --git a/TEMA9/ikz/M2.py b/TEMA9/ikz/M2.py new file mode 100644 index 0000000..184eb2c --- /dev/null +++ b/TEMA9/ikz/M2.py @@ -0,0 +1,26 @@ +# M2.py + +import M1 + +def to_value(text): + s = text.strip() + if s.isdigit(): + return int(s) + return s + +def run(): + filename = input() + MM = [] + with open(filename, "r", encoding="utf-8") as f: + for line in f: + parts = line.split() + i = 0 + while i < len(parts): + MM.append(to_value(parts[i])) + i = i + 1 + + CC1, CC2 = M1.func1(MM) + print(CC1) + print(CC2) + M1.func2("RES2.txt", CC1, 3) + return CC2 diff --git a/TEMA9/ikz/NAMES.txt b/TEMA9/ikz/NAMES.txt new file mode 100644 index 0000000..8ff4927 --- /dev/null +++ b/TEMA9/ikz/NAMES.txt @@ -0,0 +1,25 @@ +Иванов +Петров +Сидоров +Иванов +Смирнов +Кузнецов +Петров +Иванов +Орлов +Орлов +Сидоров +Сидоров +Петров +Смирнов +Иванов +Кузнецов +Кузнецов +Петров +Орлов +Смирнов +Иванов +Петров +Сидоров +Иванов +Смирнов diff --git a/TEMA9/ikz/NUM50.txt b/TEMA9/ikz/NUM50.txt new file mode 100644 index 0000000..b647046 --- /dev/null +++ b/TEMA9/ikz/NUM50.txt @@ -0,0 +1,50 @@ +21 +25 +23 +27 +22 +24 +26 +20 +21 +25 +23 +27 +22 +24 +26 +20 +21 +25 +23 +27 +22 +24 +26 +20 +21 +25 +23 +27 +22 +24 +26 +20 +21 +25 +23 +27 +22 +24 +26 +20 +21 +25 +23 +27 +22 +24 +26 +20 +21 +25 diff --git a/TEMA9/ikz/RES2.txt b/TEMA9/ikz/RES2.txt new file mode 100644 index 0000000..fd9b086 --- /dev/null +++ b/TEMA9/ikz/RES2.txt @@ -0,0 +1,2 @@ +Иванов Петров Сидоров +Смирнов Кузнецов Орлов diff --git a/TEMA9/ikz/RES2a.bin b/TEMA9/ikz/RES2a.bin new file mode 100644 index 0000000000000000000000000000000000000000..645649147b1ebc9ae14447c1b71ade34cb5a4f86 GIT binary patch literal 28 dcmZo*nJUNt0kKmwyxF{2y;*>e*_%044*){H1hN1C literal 0 HcmV?d00001 diff --git a/TEMA9/ikz/test.md b/TEMA9/ikz/test.md new file mode 100644 index 0000000..2e05809 --- /dev/null +++ b/TEMA9/ikz/test.md @@ -0,0 +1,174 @@ +# Индивидуальное контрольное задание по теме 9 + +Коломейцев Дмитрий, А-02-23 + +## Задание + +Вариант M3_5 + +1) Создайте модуль М1, содержащий две функции: + +- функция 1: аргумент - список СС с числовыми или символьными значениями; по этому списку рассчитывается новый список СС1 с неповторяющимися значениями из исходного списка и числовой список СС2 с целочисленными элементами, равными числам повторений значений из СС1 в СС; эти два списка - результаты функции. + +- функция 2: аргументы - имя текстового файла, список с числовыми или символьными значениями и целое число; элементы из входного списка должны быть записаны в указанный файл, причем число элементов в строке файла должно равняться указанному целому числу. + +2) Создайте еще один модуль М2, в котором должны: + +- запрашиваться имя текстового файла с исходными данными, проверяться его наличие и при отсутствии - повторение запроса; + +- считывание значений из каждой строки файла и формирование из них списка ММ; + +- вызов функции 1 с ММ и отображение результатов; + +- вызов функции 2 с передачей ей списка СС1 из функции 1 для записи в файл RES2.txt по 3 элемента в строке. + +3) Создайте модуль М0 - главную программу, которая вызывает М2 и отображает в виде графика полученный список СС2 и записывает его в бинарный файл RES2a.bin. + +4) Подготовьте 2 файла: один с 50 целочисленными случайными значениями из диапазона от 20 до 27, второй - с некоторым набором повторяющихся символьных значений, например, фамилий, и проверьте с ними разработанную программу. + + + +## Решение + +Содержание M1: +```py +# M1.py + +def func1(CC): + CC1 = [] + CC2 = [] + + i = 0 + while i < len(CC): + value = CC[i] + j = 0 + exists = 0 + while j < len(CC1): + if CC1[j] == value: + exists = 1 + break + j = j + 1 + if exists == 0: + CC1.append(value) + i = i + 1 + + i = 0 + while i < len(CC1): + value = CC1[i] + count = 0 + j = 0 + while j < len(CC): + if CC[j] == value: + count = count + 1 + j = j + 1 + CC2.append(count) + i = i + 1 + + return CC1, CC2 + + +def func2(filename, CC, n): + with open(filename, "w", encoding="utf-8") as f: + i = 0 + in_line = 0 + while i < len(CC): + if in_line > 0: + f.write(" ") + f.write(str(CC[i])) + in_line = in_line + 1 + + if in_line == n: + f.write("\n") + in_line = 0 + + i = i + 1 + + if in_line != 0: + f.write("\n") +``` + +Содержание M2: +```py +# M2.py + +import M1 + +def to_value(text): + s = text.strip() + if s.isdigit(): + return int(s) + return s + +def run(): + filename = input() + MM = [] + with open(filename, "r", encoding="utf-8") as f: + for line in f: + parts = line.split() + i = 0 + while i < len(parts): + MM.append(to_value(parts[i])) + i = i + 1 + + CC1, CC2 = M1.func1(MM) + print(CC1) + print(CC2) + M1.func2("RES2.txt", CC1, 3) + return CC2 +``` + +Содержание главного модуля M0: +```py +# M0.py +import pickle +import matplotlib.pyplot as plt +import M2 + +def write_bin(filename,data): + with open(filename,"wb") as f: + pickle.dump(data,f) + +def main(): + CC2=M2.run() + x=[] + i=0 + while i~|?oOo}MNzst6_GCC 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 literal 0 HcmV?d00001 diff --git a/TEMA9/pictures/NUM50.png b/TEMA9/pictures/NUM50.png new file mode 100644 index 0000000000000000000000000000000000000000..e26536df7f2eea7a9bc4f67bf95dcd437b3d5d9a GIT binary patch literal 12471 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