From 1e6c09714ad9c9fcffeecfdd9bb7976bc59597d2 Mon Sep 17 00:00:00 2001 From: Katerina Date: Mon, 15 Dec 2025 11:52:24 +0300 Subject: [PATCH] test --- TEMA9/test/M0.py | 10 ++++ TEMA9/test/M1.py | 20 +++++++ TEMA9/test/M2.py | 30 ++++++++++ TEMA9/test/Res3030.txt | 9 +++ TEMA9/test/data.txt | 6 ++ TEMA9/test/image1.png | Bin 0 -> 12907 bytes TEMA9/test/test.md | 132 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 207 insertions(+) create mode 100644 TEMA9/test/M0.py create mode 100644 TEMA9/test/M1.py create mode 100644 TEMA9/test/M2.py create mode 100644 TEMA9/test/Res3030.txt create mode 100644 TEMA9/test/data.txt create mode 100644 TEMA9/test/image1.png create mode 100644 TEMA9/test/test.md diff --git a/TEMA9/test/M0.py b/TEMA9/test/M0.py new file mode 100644 index 0000000..c0ec6a7 --- /dev/null +++ b/TEMA9/test/M0.py @@ -0,0 +1,10 @@ +import M2 + +res = M2.main() +if res: + c, p, o = res + with open("Res3030.txt", "w", encoding="utf-8") as f: + f.write("Результаты:\n") + for country, value in zip(c, p): + f.write(f"{country}: {value}\n") + f.write(f"\nОбщее: {o}") diff --git a/TEMA9/test/M1.py b/TEMA9/test/M1.py new file mode 100644 index 0000000..52ba160 --- /dev/null +++ b/TEMA9/test/M1.py @@ -0,0 +1,20 @@ +import pylab + +def calc(d): + pop = 0 + res = 0 + cnt = [] + per = [] + for c, v in d.items(): + pop += v[0] + res += v[1] + cnt.append(c) + per.append(v[1]/v[0] if v[0]>0 else 0) + return cnt, per, res/pop if pop>0 else 0 + +def plot(d): + pylab.bar(d.keys(), [v[1] for v in d.values()]) + pylab.title('Ресурс по странам') + pylab.xlabel('Страны') + pylab.ylabel('Ресурс') + pylab.show() diff --git a/TEMA9/test/M2.py b/TEMA9/test/M2.py new file mode 100644 index 0000000..c6fdfc6 --- /dev/null +++ b/TEMA9/test/M2.py @@ -0,0 +1,30 @@ +import os +import M1 + +def main(): + fname = input("Файл (data.txt): ") + if not os.path.isfile(fname): + print("Файл не найден") + return + + # Чтение данных + data = {} + with open(fname, 'r', encoding='utf-8') as f: + for line in f: + c, p, r = line.strip().split() + data[c] = [float(p), float(r)] + + print("Данные:", data) + + # Расчёт + c, p, o = M1.calc(data) + + print("\nРесурс на душу:") + for country, val in zip(c, p): + print(f"{country}: {val:.3f}") + print(f"\nОбщее: {o:.3f}") + + # График + M1.plot(data) + + return c, p, o diff --git a/TEMA9/test/Res3030.txt b/TEMA9/test/Res3030.txt new file mode 100644 index 0000000..5d3d72d --- /dev/null +++ b/TEMA9/test/Res3030.txt @@ -0,0 +1,9 @@ +Результаты: +США: 0.07682119205298013 +Россия: 0.10342465753424657 +Австралия: 0.5 +Китай: 0.009216909216909217 +Индия: 0.007279151943462898 +Германия: 0.03975903614457831 + +Общее: 0.023178226514486387 \ No newline at end of file diff --git a/TEMA9/test/data.txt b/TEMA9/test/data.txt new file mode 100644 index 0000000..b953287 --- /dev/null +++ b/TEMA9/test/data.txt @@ -0,0 +1,6 @@ +США 302 23.2 +Россия 146 15.1 +Австралия 28 14 +Китай 1443 13.3 +Индия 1415 10.3 +Германия 83 3.3 \ No newline at end of file diff --git a/TEMA9/test/image1.png b/TEMA9/test/image1.png new file mode 100644 index 0000000000000000000000000000000000000000..65ceae08657d2b034b919dd2919ffc05edeaddf1 GIT binary patch literal 12907 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 literal 0 HcmV?d00001 diff --git a/TEMA9/test/test.md b/TEMA9/test/test.md new file mode 100644 index 0000000..e60465b --- /dev/null +++ b/TEMA9/test/test.md @@ -0,0 +1,132 @@ +# Индивидуальное контрольное задание по теме 9 + +Зеленкина Катерина, А-02-23 +Вариант 6 + +## Задание +1) Создайте модуль М1, содержащий две функции: +- функция 1: аргумент - словарь с исходными данными (ключи - страны, значения - списки с 2 значениями: население, объем некоторого ресурса); функция должна создать два списка: список стран и список с элементами - для каждой страны значение ресурса на душу населения, а также значение отношения суммарных ресурсов к суммарному населению; +- функция 2: аргумент - словарь, такой же, как в функции1; функция должна построить столбиковую диаграмму, демонстрирующую распределение ресурса по странам. + +2) Создайте еще один модуль М2, в котором должны выполняться операции: +- запрашивается и вводится имя бинарного файла, проверяется его наличие, и если он существует, то из него считывается объект-словарь с исходными данными; +- вызывается функция 1 и отображаются результаты; +- вызывается функция 2. + +3) Создайте модуль М0 - главную программу, которая вызывает М2 и после завершения ее работы записывает полученные результаты в текстовый файл Res3030.txt. + +4) Проверьте программу с данными о запасах угля в разных странах: + +США 302 23.2 + +Россия 146 15.1 + +Австралия 28 14 + +Китай 1443 13.3 + +Индия 1415 10.3 + +Германия 83 3.3 + +## Решение +Содержимое M1 +```py +import pylab + +def calc(d): + pop = 0 + res = 0 + cnt = [] + per = [] + for c, v in d.items(): + pop += v[0] + res += v[1] + cnt.append(c) + per.append(v[1]/v[0] if v[0]>0 else 0) + return cnt, per, res/pop if pop>0 else 0 + +def plot(d): + pylab.bar(d.keys(), [v[1] for v in d.values()]) + pylab.title('Ресурс по странам') + pylab.xlabel('Страны') + pylab.ylabel('Ресурс') + pylab.show() +``` + +Содержимое M2: +```py +import os +import M1 + +def main(): + fname = input("Файл (data.txt): ") + if not os.path.isfile(fname): + print("Файл не найден") + return + + # Чтение данных + data = {} + with open(fname, 'r', encoding='utf-8') as f: + for line in f: + c, p, r = line.strip().split() + data[c] = [float(p), float(r)] + + print("Данные:", data) + + # Расчёт + c, p, o = M1.calc(data) + + print("\nРесурс на душу:") + for country, val in zip(c, p): + print(f"{country}: {val:.3f}") + print(f"\nОбщее: {o:.3f}") + + # График + M1.plot(data) + + return c, p, o +``` + +Содержимое M0: +```py +import M2 + +res = M2.main() +if res: + c, p, o = res + with open("Res3030.txt", "w", encoding="utf-8") as f: + f.write("Результаты:\n") + for country, value in zip(c, p): + f.write(f"{country}: {value}\n") + f.write(f"\nОбщее: {o}") +``` + +Создали файл data.txt с данными: +```py +США 302 23.2 +Россия 146 15.1 +Австралия 28 14 +Китай 1443 13.3 +Индия 1415 10.3 +Германия 83 3.3 +``` + +Вывод: +```py +Файл (data.txt): data.txt +Данные: {'США': [302.0, 23.2], 'Россия': [146.0, 15.1], 'Австралия': [28.0, 14.0], 'Китай': [1443.0, 13.3], 'Индия': [1415.0, 10.3], 'Германия': [83.0, 3.3]} + +Ресурс на душу: +США: 0.077 +Россия: 0.103 +Австралия: 0.500 +Китай: 0.009 +Индия: 0.007 +Германия: 0.040 + +Общее: 0.023 +``` + +График: +![Скриншот графика1](image1.png)