Для того чтобы понять, какая команда присваивания должна следовать за командами ( A := A + B ) и ( B := A - B ), чтобы произошел обмен значениями переменных ( A ) и ( B ), рассмотрим пошаговое выполнение каждой команды.
- Пусть исходные значения переменных ( A ) и ( B ) равны ( A_1 ) и ( B_1 ) соответственно.
После выполнения команды ( A := A + B ):
[
A = A_1 + B_1
]
( B ) остается без изменений:
[
B = B_1
]
После выполнения команды ( B := A - B ):
[
B = (A_1 + B_1) - B_1 = A_1
]
Теперь ( B ) принимает значение ( A_1 ), а ( A ) остается равным ( A_1 + B_1 ).
Теперь нам нужно определить, какая команда завершит обмен значений переменных.
Рассмотрим каждый из предложенных вариантов:
Вариант 1: ( B := A + B )
[
B = A + B = (A_1 + B_1) + A_1 = 2A_1 + B_1
]
Это не то, что нам нужно, так как ( B ) не должно принимать значение ( 2A_1 + B_1 ).
Вариант 2: ( A := A + B )
[
A = A + B = (A_1 + B_1) + A_1 = 2A_1 + B_1
]
Это тоже не подходит, так как ( A ) не должно принимать значение ( 2A_1 + B_1 ).
Вариант 3: ( A := A - B )
[
A = (A_1 + B_1) - A_1 = B_1
]
Теперь ( A ) принимает значение ( B_1 ), а ( B ) остается равным ( A_1 ), что соответствует обмену значений.
Вариант 4: ( B := B - A )
[
B = A_1 - (A_1 + B_1) = -B_1
]
Это также неверно, так как ( B ) не должно принимать значение ( -B_1 ).
Таким образом, правильный вариант, который завершит обмен значений переменных ( A ) и ( B ), это:
3) ( A := A - B ).