§ . № Циклическая перестановка значений
Имеются числовые переменные A, B и C. Сколько промежуточных переменных потребуется для того, чтобы переменной A было присвоено значение переменной B, переменной B — значение переменной C, а переменной C — значение переменной A? Запишите соответствующий алгоритм.
Решение
Обозначим начальные значения A, B, C буквами a, b, c. Значение a нужно сохранить до последней команды, иначе присваивание A := B его уничтожит. Введём одну промежуточную переменную M того же числового типа.
- M := A сохраняет a; теперь M = a.
- A := B переносит b в A. Значение B пока остаётся b.
- B := C переносит c в B. Значение C пока остаётся c.
- C := M переносит сохранённое a в C.
После четырёх команд получаем A = b, B = c, C = a, как требовалось. Достаточно одной промежуточной переменной: её значение не перезаписывается до завершения перестановки.
Ответ
Одна промежуточная переменная M:
M := A
A := B
B := C
C := M
Помогло?
