Обмен значениями двух переменных
💻 Информатика · 8 класс
Зачем менять значения местами
Во многих задачах нужно поменять местами значения двух переменных: расставить числа по возрастанию, переставить элементы массива, перевернуть последовательность. На первый взгляд задача простая, но именно здесь начинающие чаще всего ошибаются. Разберём, как выполнить обмен значениями правильно.
Почему нельзя просто присвоить
Если попытаться написать a := b, а потом b := a, то ничего не получится. После первой строки старое значение a уже стёрто и заменено значением b. Во второй строке b получит то же самое значение, и обе переменные станут равны. Исходное значение a безвозвратно потеряно.
Обмен через вспомогательную переменную
Чтобы не потерять данные, вводят третью переменную, которую обычно называют c или «временной». В неё сохраняют значение перед перезаписью.
c := a; a := b; b := c
Разбор примера
Пусть a = 7, b = 4. Проследим, что хранится в переменных на каждом шаге.
| Шаг | a | b | c |
|---|---|---|---|
| Начало | 7 | 4 | — |
c := a | 7 | 4 | 7 |
a := b | 4 | 4 | 7 |
b := c | 4 | 7 | 7 |
В итогеa = 4,b = 7— значения поменялись местами, ничего не потеряно.
Частые ошибки. Пробуют обойтись без третьей переменной двумя присваиваниями и теряют значение. Путают порядок строк: важно сначала сохранитьa, потом перезаписатьa, и только в конце записать вb. Дают временной переменной то же имя, что и существующей.
Где применяется обмен
Обмен значениями — один из базовых приёмов, на котором строятся более сложные алгоритмы. Без него не обходится сортировка: чтобы расставить числа по возрастанию, соседние элементы многократно меняют местами, если они стоят в неправильном порядке. Тот же приём используют, когда нужно переставить элементы массива или переместить наименьший элемент в начало.
Аналогия со стаканами
Представьте два стакана: в одном сок, в другом вода. Чтобы поменять их содержимое местами, не обойтись без третьего, пустого стакана. Сначала сок переливают в пустой стакан, затем воду — в освободившийся, и в конце сок — в последний свободный. Вспомогательная переменная играет роль именно такого третьего стакана.
| Действие | Команда |
|---|---|
| Сохранить первое значение | c := a |
| Перенести второе на место первого | a := b |
| Вернуть сохранённое во второе | b := c |
Запомнив этот порядок из трёх шагов, ученик сможет уверенно выполнять обмен в любой задаче. Главное правило простое: прежде чем что-то стереть присваиванием, убедитесь, что нужное значение уже сохранено в другой переменной.
Кратко о главном
- Два присваивания подряд не меняют значения местами — данные теряются.
- Для обмена нужна третья, вспомогательная переменная.
- Порядок строк:
c := a; a := b; b := c. - Сначала сохраняем значение, потом перезаписываем.
- Приём используют при сортировке и перестановках в массиве.