Меню

Главная

Статистика

 

 


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

Алгоритм обмена (1)

Имеется 2 переменных a и b. Поменять их значения местами.

При реализации алгоритма используется рабочая (временная - temporary) переменная tmp. В нее записывается содержимое первой переменной, затем в первую переменную копируется содержимое второй, и наконец, во вторую переменную переносится содержимое рабочей переменной. Таким образом, алгоритм состоит из трех шагов:

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

  • Проверим работоспособность этого алгоритма на примере, скажем, a=5 и b=8:
    tmpÜ5; aÜ8; bÜ5

Полезно оформить приведенный алгоритм как процедуру, - она нам еще пригодится.

Procedure Swap (var  a, b : item);
   var
     tmp : item;
   begin
     tmp := a;   {Шаг 1}
     a   := b;   {Шаг 2}
     b   := tmp  {Шаг 3}
   end;
                

При использовании следует лишь вместо item подставить соответствующий условию задачи тип данных.

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

Алгоритм обмена (2)

Имеется 2 целочисленных переменных a и b, причем их сумма не выходит за рамки диапазона значений, допускаемого заданным типом. Поменять их значения местами.

В этом случае можно использовать механизм, не требующий дополнительной переменной:

a := a + b; b := a - b; a := a - b;
                

  • Сравните : при тех же a=5 и b=8 получаем
    aÜ13; bÜ5; aÜ8

Упражнение #1.

Напишите соответствующую процедуру Swap2.

Наконец, есть еще

Алгоритм обмена (3)

Он также не требует дополнительной переменной и использует свойство логической операции xor.

a := a xor b;  b := a xor b;  a := a xor b;
                

  • Проверьте работоспособность алгоритма на том же примере.

Назад

Ковролин - любой оптовая продажа линолеума по оптовым ценам в Москве.. москва! Наши скидки: охрана коттеджа + вневедомственная охрана Вас удивят. Только летом!. наше предложение! Мы продаем: строганный сруб и дом под ключ брус по выгодным ценам! Комфортно!. Информация о ремонте машин