ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode


Поменять значения двух переменных


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

Как только вы начнете писать свою второю в жизни программу (первая — вывод слов Hello World), вы столкнетесь с необходимостью обмена значениями между двумя числовыми переменными, поскольку манипуляции с данными непременно это предполагают. В примерах кода, которые приводятся в статье мы оперируем с целочисленными переменными типа int, но данные примеры легко адаптировать под любой вид числовых переменных: byte, long, float, double и т.п. Для этого вам будет достаточно заменить все ключевые слова int, на требуемый тип данных.

Примеры подходят и будут работать во всех Си-подобных языках программирования: C, C++, C#; а также в языке Java.

Поменять значения двух переменных

Прежде чем писать программный код, давайте подумаем, как поменять значения двух переменных в принципе. Решим данную задачу у себя в голове. А затем формализуем выработанный алгоритм действий.

Начнем с тезиса о том, что переменные в программе имеют содержимое. Они содержат информацию. Для того, чтобы провести какую-либо аналогию с жизнью, нужно подумать: а какие предметы что-нибудь в себе содержат? Первое, что приходит на ум — это ёмкость с жидкостью.

Пусть у нас есть два стакана: в одном налито молоко, а в другом кока-кола. Как нам перелить содержимое одного стакана в другой (нельзя же смешивать эти два совершенно несовместимых продукта) [заметили аналогию? ведь содержимое двух переменных нам тоже нужно поменять местами]? Ответ очевиден — понадобится третий (пустой) стакан. С помощью него удастся перелить содержимое одного стакана в другой. Вот так:

  1. Перелить молоко из первого стакана в третий.
  2. Перелить кока-колу из второго стакана в первый.
  3. Из третьего стакана перелить молоко во второй стакан. Готово!

Иллюстрация действий приводится на рисунке ниже.

Поменять значения двух переменных - аналогия с жидкостью


Возвращаясь к программированию, делаем вывод, что для того, чтобы поменять значения двух переменных, понадобится промежуточная третья.

Пусть даны переменные a и b, и их значения нужно поменять местами. Нам понадобится промежуточная временная третья переменная, назовем её temp (сокращение от английского слова temporary — временный). Чтобы выполнить замену, придется также выполнить три действия:

  1. Присвоим переменной temp значение из переменной a.
  2. Присвоим a значение b.
  3. Присвоим b значение переменный temp. Готово!

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

Поменять значения двух переменных не используя третью

Но переменные в программировании это всё-таки не стаканы, это вещь в некоторой степени абстрактная, и приведенная выше аналогия не корректна полностью, поскольку существует способ обмена значений двух переменных без использования третьей. Как же это сделать?

Объявим a = 3, b = 5. Чтобы поменять значения этих переменных, необходимо выполнить четыре операции (но не придётся использовать промежуточную временную переменную), они приведены в таблице. В столбцах значений переменных намеренно представлены выражения (а не их результат) для большей наглядности.

Операция a b
a = a + b 3 5
b = b — a 3 + 5 5
b = -b 3 + 5 5 — 3 — 5 = -3
a = a — b 3 + 5 3
3 + 5 — 3 = 5 3

Формализуем табличные данные в виде кода:

Надеемся, что алгоритмическая последовательность действий, записанная в виде таблицы, а также программный код, помогли вам разобраться и понять, как поменять значения двух переменных без третьей.

Спасибо за прочтение статьи!

4.7/5 - (98 голосов)



Поделиться в соц. сетях:

8 комментария(ев) к статье “Поменять значения двух переменных

  1. Владимир

    Добрый день, не пойму — зачем столько действий если можно
    a = 3;
    b = 6;

    b = a + b; 3+6=9
    a = b — a; 9-3=6
    b = b — a; 9-6=3

    a = 6;
    b = 3;

    1. admin Автор статьи

      Добрый день. У Вас совершенно правильный код. На одну операцию короче.
      Если сравнить с нашим кодом, то Вы шестую строку интегрировали в седьмую. А смысл, естественно, тот же самый.

    1. Алексей

      Запись фантастическая, посчитал все работает, проверил в программе, тоже отличный результат.

  2. Андрей

    А как сделать, чтобы программа прочиталась? Что нужно писать во WriteLine-е?

    1. admin Автор статьи

      Например, так:

      Console.Write(«a = «);
      int a = Convert.ToInt32(Console.ReadLine());
      Console.Write(«b = «);
      int b = Convert.ToInt32(Console.ReadLine());

      int tmp;

      tmp = a;
      a = b;
      b = tmp;

      Console.WriteLine(«a = » + a);
      Console.WriteLine(«b = » + b);

Добавить комментарий

Ваш адрес email не будет опубликован.