РАЗРАБОТКА КУРСА
ДОПОЛНИТЕЛЬНЫХ ЗАДАНИЙ ПО РЕАЛИЗАЦИИ ГЕОМЕТРИЧЕСКИХ ВЫЧИСЛЕНИЙ НА
ЯЗЫКЕ PYTHON С АВТОМАТИЧЕСКОЙ
ПРОВЕРКОЙ
Коломойцева
Мария Константиновна, учитель математики гимназии №1
Тюмень, 2020 г.
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
Курс
предполагает разработку дополнительных заданий по дисциплине «Программирование»
и «Информатика» в средней и старшей школе. Более того, задания непосредственным
образом связаны с дисциплиной «Геометрия», ведь в них используются действия с
такими элементами как: точка, прямая, треугольник, квадрат, прямоугольник. В соответствии с современным
ФГОС непосредственно программирование начинается в конце 8 класса (4 четверть).
Задачи
курса:
- показать возможность использования
программирования для решения задач на геометрические вычисления;
- научить составлению и оформлению программ в
соответствии с нормативными требованиями языка
программирования;
-
содействовать развитию общей информационной культуры как одного из
аспектов будущей профессиональной деятельности;
-
развивать логическое и аналитическое мышление школьников.
Регулярность
выполнения деятельности учащихся по данному курсу обеспечивает закрепление
полученных навыков. Текущий контроль уровня усвоения материала осуществляется
по результатам выполнения учащимися практических заданий на компьютере.
Данные практикумы являются дополнением к
основному учебному процессу, факультативам, кружкам и подготовке к олимпиадам.
Курс состоит из 8
заданий, каждое из которых принадлежит определенной теме (Схема 1).
Схема
1. Разделение практикумов на темы
Таким
образом, курс состоит из 8 практикумов, разбитых на 3 математические темы за 7
и 8 класс общеобразовательной школы. Практикумы могут быть использованы как
дополнительные задания на уроках информатики в период изучения языка
программирования Python
для закрепления полученного ранее теоретического материала.
Приложение
«А» содержит примеры решения практических заданий, а приложение «Б» код
программы-проверки для учителя.
ФОРМУЛИРОВАНИЕ ЗАДАНИЙ ПРАКТИКУМА
Квадрат и прямоугольник
Практикум №1
Необходимо повторить:
- типы данных в Python;
- способы ввода и вывода данных в Python.
Во всех практикумах будет использован тип
данных – числа.
Задача
1. Вычислить периметр прямоугольника с заданными сторонами.
Входные
данные: в одной строке вводятся 2 натуральных числа.
Выходные
данные: значение периметра прямоугольника.
Основная
цель задачи: отработка навыка ввода и вывода данных.
Пример:
Практикум №2
Необходимо повторить:
-
основные арифметические операции (сложение, вычитание, умножение, деление,
остаток от деления, целочисленное деление, возведение в степень);
-
приоритет
операций в Python.
Задача
2. Найти число, представляющее собой количество десятков в значении площади
квадрата, используя его диагональ.
Входные
данные: вводится положительное число х.
Выходные
данные: цифра, обозначающая количество десятков в значении площади.
Основная
цель задачи: применение математических знаний, умения анализировать ситуацию,
отработка применения арифметических операций.
Пример:
Необходимо повторить:
- условные операторы в Python
Практикум №3
Задача
3. Определить принадлежит ли точка координатным осям по заданным
координатам.
Входные
данные: в одной строке вводятся 2 числа, где первое число – координата по оси
абсцисс, а второе – по оси ординат.
Выходные
данные: 1 - принадлежит координатным осям, 0 - не принадлежит.
Основная
цель задачи: отработка навыка использования условного оператора и логических
операций.
Пример:
Практикум №4
Задача
4. Определить взаимное расположение прямых на плоскости.
Входные
данные: в одной строке вводятся коэффициенты k1,
b1
– первой прямой, k2. b2 – второй прямой.
Выходные
данные: «1» - прямые параллельны друг другу, «2» - прямые совпадают, в случае
пересечения вывести сумму координат по х и по y точки пересечения прямых.
Основная
цель задачи: отработка навыка использования условного оператора, применение
математических знаний по теме «взаимное расположение прямых».
Пример:
Необходимо повторить:
- конструкция циклов;
- цикл с параметров в Python.
Практикум №5
Задача
5. С помощью цикла for вывести на
экран сумму периметров n первых
египетских треугольников.
Входные
данные: n
– натуральное число, обозначающее количество треугольников.
Выходные
данные: в каждой строке перечисляются стороны треугольников по возрастанию.
Основная
цель задачи: отработка навыка работы с циклом с параметром, повторение изученного
по геометрии в 7 классе.
Пример:
Практикум №6
Задача
6. Найти количество существующих треугольников, от 1 до n,
для заданного отношения с фиксированным значением k
(рис. 1).
Входные
данные: в одной строке через пробел вводятся натуральные значения k и n.
Выходные
данные: количество существующих треугольников с заданными сторонами.
Основная
цель задачи: отработка навыка работы с циклом и условным оператором.
Пример:
Рисунок 1. Модель задания № 6
Необходимо повторить:
- конструкция циклов;
- цикл с предусловием.
Практикум №7
Задача
7. Определить максимальное целое значение стороны равностороннего
треугольника, при котором радиус описанной окружности не будет превосходить
заданное значение r, увеличивая с
каждым шагом сторону треугольника на первоначальное значение m (рис. 2).
Входные данные: в
одной строке через пробел вводятся значения -m (изначальной стороны) и r-
(предельного радиуса).
Выходные
данные: значение искомой стороны равностороннего треугольника.
Основная
цель задачи: отработка навыка работы с циклом с предусловием.
Пример:
Рисунок 2. Обозначение параметра m
Практикум №8
Задача
8. Составить программу, которая определяет являются ли 3 веденных значения
взаимно простыми сторонами прямоугольного треугольника.
Входные данные: в одной
строке через пробел вводят 3 натуральных числа.
Выходные
данные: «1» - в случае, если значения являются взаимно простыми сторонами
прямоугольного треугольника, «0» - если этого не происходит.
Основная
цель задачи: отработка навыка работы с циклом с предусловием, повторение
алгоритма Евклида.
Пример:
Стоит
уточнить, что для проверки правильности составления программ школьниками,
необходимо преобразовывать текстовый документ с готовым кодом в файл с типом «.py»
и называть в соответствии с номером практикума: «задание1», «задание 2» и т.д.
Для упрощения
деятельности учителя, связанной с оцениванием заданий и для избегания
субъективности, была создана программа, проверяющая составленные коды учащихся
по каждому из 8 практикумов. Был создан пользовательский интерфейс из трех
блоков (рис. 3).
Рисунок 3. Приложение перед началом работы
На каждом занятии учащийся выбирает
нужный ему блок и видит перед собой краткое описание заданий, которые он должен
был выполнить и назвать в соответствии с номером практикума. Так, при выборе
первого блока «Квадрат и прямоугольник» пользователь обращается к первому и
второму практикуму (рис.4).
Рисунок 4. Вид приложения при выборе первого
блока
Для выбора каждого из блоков, школьнику
достаточно написать соответствующий номер блока и перейти к следующей строке.
Для каждого кода школьника, приложение
проводит 5 различных тестов и вывод на экран результат в виде процента
количества пройденных тестов.
Таким образом, если учащийся создал верный код, то результат на экране выдаст всего одну строку: «Пройдено 100%». Всего возможны 3 варианта вывода результата – 100% , 0% и частичное решение (20, 40, 60 или 80%) для различного количества пройденных тестов (рис. 5).
Рисунок
5. Различные варианты результата программы
1. http://qaru.site/questions/56231/confused-about-stdin-stdout-and-stderr
2. https://python-scripts.com/subprocess Работа с процессами в Python
3. http://py-my.ru/post/4bfb3c6a1d41c846bc00009b/ Кодировки в Python
4. https://pythonworld.ru/tipy-dannyx-v-python/fajly-rabota-s-fajlami.html Работа с файлами в Python
5. https://fgos.ru
6. https://pythonworld.ru/osnovy/cikly-for-i-while-operatory-break-i-continue-volshebnoe-slovo-else.html Циклы в Python
Пример кода
программы для первой задачи:
Пример кода
программы для второй задачи:
Пример кода
программы для третьей задачи:
Пример кода
программы для четвертой задачи:
Пример кода
программы для пятой задачи:
Пример кода
программы для шестой задачи:
Пример кода программы
для седьмой задачи:
Пример кода
программы для восьмой задачи:
import subprocess
print("Приветствуем,
Вас. "
"\nВыберите геометрический объект: "
"\n1. Квадрат и прямоугольник "
"\n2. Прямая и точка "
"\n3. Треугольник")
q = 0
obj = int(input())
if obj == 1:
print("\nЗадание № 1. "
"\nВычислить периметр прямоугольника с заданными сторонами."
"\nВходные данные: в одной строке вводятся 2 натуральных
числа."
"\n Выходные данные: значение периметра прямоугольника."
"\n \nЗадание № 2."
" \nНайти число, представляющее собой количество десятков в
значении площади квадрата, используя его диагональ."
" \n Входные данные: вводится положительное число х."
"\n Выходные данные: цифра, обозначающая количество десятков в
значении площади.")
poi = int(input())
if poi == 1:
p = subprocess.Popen(['python', 'задание1.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("3 2", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 10:
q += 1
p = subprocess.Popen(['python', 'задание1.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("1001 1", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 2004:
q += 1
p = subprocess.Popen(['python', 'задание1.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("1 1", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 4:
q += 1
p = subprocess.Popen(['python', 'задание1.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("1000 1000", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 4000:
q += 1
p = subprocess.Popen(['python', 'задание1.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("21 12", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 66:
q += 1
print ("Пройдено ", q*20, "%")
if poi == 2:
p = subprocess.Popen(['python', 'задание2.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("9", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 4:
q += 1
p = subprocess.Popen(['python', 'задание2.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("10", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 5:
q += 1
p = subprocess.Popen(['python', 'задание2.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("4", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 0:
q += 1
p = subprocess.Popen(['python', 'задание2.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("90", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 5:
q += 1
p = subprocess.Popen(['python', 'задание2.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("28", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 9:
q += 1
print("Пройдено ", q * 20, "%")
if obj == 2:
print("\nЗадание № 3. "
"\nОпределить, по заданным координатам, принадлежит ли точка
координатным осям."
"\nВходные данные: в одной строке вводятся 2 числа, где первое
число – координата по оси абсцисс, а второе – по оси ординат."
"\nВыходные данные: «1» - принадлежит координатным осям, «0» - не
принадлежит."
"\n \nЗадание № 4. \nОпределить взаимное расположение прямых на
плоскости."
"\nВходные данные: в строке вводятся коэффициенты (k и b) первой
прямой, а затем - второй прямой."
"\nВыходные данные: «1» - прямые совпадают, «2» - прямые
параллельны друг другу, в случае пересечения прямых вывести сумму координат х и
у точки пересечения.")
po = int(input())
if po == 3:
p = subprocess.Popen(['python', 'задание3.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("0 2", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 1:
q += 1
p = subprocess.Popen(['python', 'задание3.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("0 0", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 1:
q += 1
p = subprocess.Popen(['python', 'задание3.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("-1 2", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 0:
q += 1
p = subprocess.Popen(['python', 'задание3.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("10 10", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 0:
q += 1
p = subprocess.Popen(['python', 'задание3.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("-7 0", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 1:
q += 1
print("Пройдено ", q * 20, "%")
if po == 4:
p = subprocess.Popen(['python', 'задание4.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("1 -2 1 -2", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 1:
q += 1
p = subprocess.Popen(['python', 'задание4.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("10 17 10 -21", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 2:
q += 1
p = subprocess.Popen(['python', 'задание4.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("3 3 3 3", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 1:
q += 1
p = subprocess.Popen(['python', 'задание4.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("2 8 4 2", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = float(output.decode("utf-8"))
if w == 17:
q += 1
p = subprocess.Popen(['python', 'задание4.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("6 -8 2 -6", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = float(output.decode("utf-8"))
if w == -4.5:
q += 1
print("Пройдено ", q * 20, "%")
if obj == 3:
print("\nЗадание № 5. "
"\nС помощью цикла со счетчиком (for) найти сумму периметров
первых n египетских треугольников "
"\nВходные данные: n – натуральное число, обозначающее
количество треугольников.\nВыходные данные: число - сумма периметров.\n "
"\nЗадание № 6.\nНайти количество существующих треугольников, от
1 до n, для заданого отношения с фиксированным значением k. (рис. 1) "
"\nВходные данные: в одной строке через пробел вводятся значения
k и n \nВыходные данные: количество существующих треугольников с данными
сторонами"
"\n\nЗадание №7.\nОпределить максимальное целое значение стороны
равностороннего треугольника, при котором радиус описанной окружности не будет
превосходить заданное значение r, увеличивая "
"с каждым шагом сторону треугольника на первоначальное значение
m (рис. 2) \nВходные данные: в одной строке через пробел вводятся значения -m
(изначальной стороны) и r- (предельного радиуса)\n"
"Выходные данные: значение искомой стороны равностороннего
треугольника"
"\n\nЗадание №8.\nСоставить программу, которая определяет
являются ли три введенных значения взаимно простыми сторонами прямоугольного
треугольника.\nВходные данные: в одной строке вводят"
" 3 натуральных числа. \nВыходные данные: «1» - в случае, если
значения являются взаимно простыми сторонами прямоугольного треугольника, «0» -
если этого не происходит.")
ppp = int(input())
if ppp==5:
p = subprocess.Popen(['python', 'задание5.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("1", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 12:
q += 1
p = subprocess.Popen(['python', 'задание5.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("3", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 72:
q += 1
p = subprocess.Popen(['python', 'задание5.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("5", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 180:
q += 1
p = subprocess.Popen(['python', 'задание5.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("11", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 792:
q += 1
p = subprocess.Popen(['python', 'задание5.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("10", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 660:
q += 1
print("Пройдено ", q * 20, "%")
if ppp == 6:
p = subprocess.Popen(['python', 'задание6.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("11 7", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 0:
q += 1
p = subprocess.Popen(['python', 'задание6.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("3 12", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 8:
q += 1
p = subprocess.Popen(['python', 'задание6.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("4 16", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 3:
q += 1
p = subprocess.Popen(['python', 'задание6.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("12 45", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 0:
q += 1
p = subprocess.Popen(['python', 'задание6.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("1 20", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 3:
q += 1
print("Пройдено ", q * 20, "%")
if ppp ==7:
p = subprocess.Popen(['python', 'задание7.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("3 9", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 15:
q += 1
p = subprocess.Popen(['python', 'задание7.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("11 4", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 0:
q += 1
p = subprocess.Popen(['python', 'задание7.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("5 25", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 40:
q += 1
p = subprocess.Popen(['python', 'задание7.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("3 3", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 3:
q += 1
p = subprocess.Popen(['python', 'задание7.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
p.stdin.write(bytes("1 100", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 173:
q += 1
print("Пройдено ", q * 20, "%")
if ppp==8:
p = subprocess.Popen(['python', 'задание8.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("3 4 5", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 1:
q += 1
p = subprocess.Popen(['python', 'задание8.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("6 8 10", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 0:
q += 1
p = subprocess.Popen(['python', 'задание8.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("1 1 1", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 0:
q += 1
p = subprocess.Popen(['python', 'задание8.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("3 5 7", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 0:
q += 1
p = subprocess.Popen(['python', 'задание8.py'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdin.write(bytes("8 17 15", "utf-8"))
output, err = p.communicate()
p.stdin.close()
rc = p.returncode
w = int(output.decode("utf-8"))
if w == 1:
q += 1
print("Пройдено ", q * 20, "%")
else:
print("Проверьте данные")
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.