Вам дана программа, решающая задачу Сортировка. Требуется найти в ней ошибку, и объяснить (устно), почему так происходит и как Вы нашли эту ошибку.

Текст программы приведен ниже, его можно также скачать по этой сслыке или взять на диске J:\ (файл называется deb-1.pas)

const nmax=100;

var a:array[1..nmax] of integer;
    n:integer;
    i,j,g:integer;


begin
                                  {Чтение входных данных}
read(n);
for i:=1 to n do read(a[i]);
                                  {Сортировка массива}

for i:=1 to n do begin            {Подбираем число на i-ое место}

  g:=i;                           {Считаем, что самое маленькое число,
                                   которое нам встретилось, стоит на месте i}

  for j:=i+1 to n do              {Перебираем все числа с i+1 до конца массива}
    if a[j]<a[g] then g:=j;       {Если нашли число, которое меньше,
                                   чем то, что уже найдено, запоминаем его}

                                  {Меняем местами числа, стоящие на i-ом и
                                   на g-ом местах }
                                  {Если a[i]=x, a[g]=y, то после выполнения
                                   команды: }
  a[i]:=a[i]+a[g];                {a[i]=x+y, a[g]=y}
  a[g]:=a[i]-a[g];                {a[i]=x+y, a[g]=(x+y)-y=x}
  a[i]:=a[i]-a[g];                {a[i]=(x+y)-x=y}
                                  {То есть после этого a[i]=y, a[g]=x
                                   обмен значений произошел}

  end;

                                  {Выводим результат}
for i:=1 to n do
  write(a[i],' ');
end.