Обмен значений двух переменных (КуМир)

Тема: 
Линейные алгоритмы

Чтобы обменять значения двух численных переменных, существует два основных способа. Первый - это использование третьей (буферной) переменной. Второй способ - более сложный для понимания - это выполнить ряд арифметических операций сложения и вычитания для двух переменных, участвующих в обмене.

При использовании третьей переменной в ней сохраняют значение одной из двух участвующих в обмене переменных. После этого значение второй переменной присваивают первой. Таким образом в обоих переменных оказывается одно и то же значение. Последнее действие - это присвоение второй переменной ранее сохраненного значения в буферной (третьей) переменной. Данный способ подходит для любых типов данных, а не только для чисел.

Можно обойтись без буферной переменной (второй способ только для чисел). Складывают значения обоих переменных и присваивают сумму первой переменной. Вторым действием вычитают из этой суммы значение второй переменной. Разность (а это старое значение первой переменной) присваивают второй. После этого оказывается, что первая переменная содержит сумму двух переменных, а вторая - значение первой. Далее вычитают из суммы новое значение второй переменной. Разность (а это старое значение второй переменной) присваивают первой переменной.

Через буферную переменную:

алг обмен_значений
нач
  цел а, б, в
  ввод а
  ввод б
  вывод "а=",а,"; б=",б, нс
  в := а
  а := б
  б := в
  вывод "а=",а,"; б=",б, нс
кон

Арифметическими действиями:

алг обмен_значений
нач
  цел а,б
  ввод а
  ввод б
  вывод "а=",а,"; б=",б, нс
  а := а + б
  б := а - б
  а := а - б
  вывод "а=",а,"; б=",б, нс
кон

Пример выполнения кода:

5
88
а=5; б=88
а=88; б=5