Статья Автор: Корельская Елена Юрьевна

Теория

На прошлом уроке мы определяли результат работы программы по заданным входным данным. Сегодня мы будем работать над обратной задачей — искать данные, которые приводят к определённому результату. Это помогает в поиске и отладке ошибок, а также помогает понять внутреннюю логику алгоритма программы и оптимизировать его работу.
Для определения входных данных, которые приводят к заданному результату можно выполнить следующее:
  1. Подставить конкретные данные в программу, получить результат.
  2. Проанализировать код программы с учетом полученных результатов из пункта 1. Сформулировать задачу, которую решает данный алгоритм.
  3. Определить данные, которые приведут к конкретно заданному результату.
  4. Проверить (выполнить трассировку) будет ли алгоритм выдавать нужный результат на данных, определенных в пункте 3.
Задание.
Определите при каких значениях переменной a программа выведет значение 2?
a = int(input())
x = a // 3
y = a % 3
print(x * y)

 
  1. Подставим произвольное число, чтобы определить результат работы программы. Например, 11. Тогда x = 3 и  y = 2. Результат: x*y=6.
  2. Из пункта 2 понятно, что программа находит произведение целой части и остатка от деления заданного числа на 3.
  3. Произведение чисел x*y=2, значит x=1 и y= 2 или x = 2 и y = 1. То есть подходит два числа: а) число у которого  целая часть от деления на 3 равна 1 и остаток от деления на 3 равен 2. Это число 5; b)  число у которого  целая часть от деления на 3 равна 2 и остаток от деления на 3 равен 1. Это число 7.
  4. Подставим поочередно значения 5 и 7, в обоих случаях результат – число 2.
Ответ: a=5, a=7
 
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать