Хитрость заключается в том, что при присваивании предыдущее значение которое имела переменная уничтожается, поэтому если вы не задействуете некую третью переменную, то запись вида a:=b; b:=a убьёт значение а=1, и значения обоих переменных будут равны 2. Посему используем независимую переменную с в которую предварительно записываем начальное значение переменной а.