Задача 19 (Прохоров В.В.).
Учитель попросил Диму написать программу вида
Ввод (x,y)
Пока < условия выполнения итерации >
НЦ
< тело цикла >
КЦ
Вывод (x,y)
т.е. такие < условия выполнения итерации > (не содержащие никаких переменных кроме x и y) и < тело цикла >, чтобы этот фрагмент для произвольных введенных в операторе ввода чисел x=x0 и y=y0 выдавал бы оператором вывода числа x=x0+y0 и y=x0-y0.
Помогите Диме.
|
Решение задачи 19 (Прохоров В.В.).
Обозначим условия через F(x,y):
Пусть x=2, y=4. Тогда F(2,4)=True, а F(6,-2)=False.
Пусть x=6, y=-2.Тогда F(6,-2)=True,а F(4,8)=False.
т.е. F(6,-2) должна равняться и True и False одновременно! Следовательно такого < условия выполнения итерации > не существует. Задача алгоритмически не разрешима. Но если мы разрешим использовать в условии обращение к функции F(x,y), которая возвращает всегда логическое значение False, и изменяет аргументы x и y требуемым образом, то тело цикла не будет выполняться, и в этом случае задачу можно решить.
|