Войти
или
Зарегистрироваться
Курсы
Учебник
Учебник 2.0
ОГЭ/ЕГЭ
Олимпиады
Рубрикатор
Компилятор
Статья Автор:
Корельская Елена Юрьевна
Теория
На прошлом уроке мы определяли результат работы программы по заданным входным данным. Сегодня мы будем работать над обратной задачей — искать данные, которые приводят к определённому результату. Это помогает в поиске и отладке ошибок, а также помогает понять внутреннюю логику алгоритма программы и оптимизировать его работу.
Для определения входных данных, которые приводят к заданному результату можно выполнить следующее:
Подставить конкретные данные в программу, получить результат.
Проанализировать код программы с учетом полученных результатов из пункта 1. Сформулировать задачу, которую решает данный алгоритм.
Определить данные, которые приведут к конкретно заданному результату.
Проверить (выполнить трассировку) будет ли алгоритм выдавать нужный результат на данных, определенных в пункте 3.
Задание.
Определите при каких значениях переменной
a
программа выведет значение
2
?
a = int(input())
x = a // 3
y = a % 3
print(x * y)
Подставим произвольное число, чтобы определить результат работы программы. Например, 11. Тогда x = 3 и y = 2. Результат: x*y=6.
Из пункта 2 понятно, что программа находит произведение целой части и остатка от деления заданного числа на 3.
Произведение чисел x*y=2, значит x=1 и y= 2 или x = 2 и y = 1. То есть подходит два числа: а) число у которого целая часть от деления на 3 равна 1 и остаток от деления на 3 равен 2. Это число 5; b) число у которого целая часть от деления на 3 равна 2 и остаток от деления на 3 равен 1. Это число 7.
Подставим поочередно значения 5 и 7, в обоих случаях результат – число 2.
Ответ: a=5, a=7
Чтобы оставить комментарий нужна авторизация
Печать