вентилятор
Хорошего настроения!

Меняем переменные местами без использования третьей переменной



Сегодня разберём хороший приём по информатике: как поменять значения переменных между собой, без использования третьей переменной.


Задача: Поменять значения целочисленных переменных между собой любыми тремя различными способами.


Данные приёмы способствуют росту мастерства по информатике и программированию и приводят ум в порядок!





Решение:


Первый способ самый привычный для нас в информатике. Он заключается в том, что мы использованием третью переменную. Код приведён на языке C#.


static void Main(string[] args)
{
   int a = 3, b = 5, temp;

   temp = a;
   a = b;
   b = temp;

   Console.WriteLine("a= " + a);
   Console.WriteLine("b= " + b);
   Console.ReadKey();
 } 

Здесь значение переменной a сохраняется в промежуточную переменную temp. Затем мы кладём значение переменной b в переменную a. И, наконец, в переменную b кладём значение переменной temp, т.е. первоначальное значение переменной a. Таким образом, у нас переменные поменялись значениями.





Второй способ без использование третьей переменной.


static void Main(string[] args)
{
   int a = 3, b = 5 ;

   a = a + b;
   b = a - b; // здесь уже будет 3
   a = a - b;

   Console.WriteLine("a= " + a);
   Console.WriteLine("b= " + b);
   Console.ReadKey();
}

Третий способ малоизвестный с использованием логической операции исключающее ИЛИ (XOR).


static void Main(string[] args)
{
   int a = 3, b = 5;

   a = a ^ b;
   b = b ^ a;
   a = a ^ b;

   Console.WriteLine("a= " + a);
   Console.WriteLine("b= " + b);
   Console.ReadKey();
}




Рассмотрим операцию исключающего ИЛИ, и почему она нам помогает менять значения у переменных местами.


бит1 бит2 бит1^бит2
0 0 0
0 1 1
1 0 1
1 1 0

Если биты разные, то результат будет 1, если одинаковые, то 0. Как переменные меняются значениями показано на рисунках:




Приёмы информатики - меняем значения переменных между собой




Приёмы информатики - меняем значения переменных между собой




В результате у нас получается в переменной a число 5, а в переменной b число 3.



Сегодня мы продвинулись на ступеньку, на пол ступеньки в программировании и информатике. До новых встреч!


08-08-2017 в 11:53:20





Поддержать сайт:


Похожая статья:

Шейкер-сортировка на C#

Привет, Друзья! Сегодня разберём алгоритм сортировки "метод встряхиван...

Категория: Алгоритмы  Подкатегория: Сортировка
Дата: 25-01-2018 в 17:19:58 0



Оставить коментарий:



Напишите email, чтобы получать сообщения о новых комментариях (необязательно):


Задача против робота. Расположите картинки горизонтально:




Нажимая кнопку Отправить, Вы соглашаетесь с политикой конфиденциальности сайта.