Как поменять местами значение 3 переменное без ввода еще одной переменной.

0 голосов
50 просмотров

Как поменять местами значение 3 переменное без ввода еще одной переменной.


Информатика (15 баллов) | 50 просмотров
0

поконкретнее можно? а желательно с кодом

0

123a:=a+b;b:=a-b;a:=a-b;,вот так выглядит с 2 переменными,а как с 3??? кода нет

0

Нужен алгоритм или программа?

0

алгоритм

Дан 1 ответ
0 голосов
Правильный ответ
Логическая операция ⊕ - это "исключающее ИЛИ" (xor в языках Паскаль, Бейсик и т.д.), а → операция присваивания.
Тогда a⊕b→a; a⊕b→b; a⊕b→a - это был обмен значениями a ↔ b
Теперь по этой же схеме обменяем местами b и с:
b⊕c→b;
b⊕c→с; b⊕c→b.
Результат: b→a; c→b; a→c

Программа для иллюстрации:
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
begin
  var a:=50;
  var b:=-20;
  var c:=0;
  Println('Исходные значения: a=',a,'b=',b,'c=',c);
  a:=a xor b; b:=a xor b; a:=a xor b;
  b:=b xor c; c:=b xor c; b:=b xor c;
  Println('Результат обмена: a=',a,'b=',b,'c=',c)
end.

Результат:
Исходные значения: a= 50 b= -20 c= 0
Результат обмена: a= -20 b= 0 c= 50

(142k баллов)