Pascal. Задача 8-20

Отсортировать массив целых чисел, введенных пользователем, методом "пузырька".

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

Решение
const
  N = 10;
var
  i, j, tmp : integer;
  a : array[1..N] of integer;
  flag : boolean;
begin
  for i := 1 to N do begin
    Write('Введите элемент массива ', i, ': ');
    Readln(a[i]);
  end;
  for i := 1 to N - 1 do begin
    flag := true;
    for j := 1 to N - i do begin
      if a[j] > a[j + 1] then begin
        tmp := a[j];
        a[j] := a[j + 1];
        a[j + 1] := tmp;
        flag := false;
      end;
    end;
    if flag then break;
  end;
  for i := 1 to N do Write(a[i], ' ');
  Writeln();
end.