рассмотрим, что делает эта программа.
     c : = 0;  // начальное значение счётчика
      for i : = 1 to 9 do // цикл по i
         if a[i - 1] <  a[i] then begin // если текущий элемент больше  предыдущего
            c : = c + 1;  // то увеличиваем счётчик на 1
            t : = a[i];  // и меняем текущий элемент местами с предыдущим
            a[i] : = a[i - 1]; 
            a[i - 1] : = t
         end; 
   последние три строчки перед end  - обычный алгоритм обмена значениями между двумя переменными (t = a;  a = b;  b = t).
   итак, моделируем, что делает программа и считаем число обменов.
   0) 6 9 7 2 1 5 0 3 4 8 - исходный массив
  1)  6 9 7 2 1 5 0 3 4 8 ->   9 6 7 2 1 5 0 3 4 8 обмен
  2)  9 6  7 2 1 5 0 3 4 8 ->   9 7 6 2 1 5 0 3 4 8 обмен
  3)  9 7 6  2 1 5 0 3 4 8 ок
  4)  9 7 6  2 1 5 0 3 4 8 ок
  5)  9 7 6  2 1 5 0 3 4 8 ->   9 7 6  2 5 1 0 3 4 8 обмен
  6)  9 7 6  2 5 1  0 3 4 8 ок
  7, 8, 9) ноль будет "всплывать" в конец, 3 обмена
   всего будет 6 обменов, c = 6.
Популярные вопросы