Учеба и наука

дан одномерный целочисленный масси от 0 до 9. Значения: 1,2,4,5,7,8,9,6,03. J =6/ пока A[j]A[j+1] T = A[j] A[j]=A[j+1] A[J+1]=T J=J-1 / найти значение J - вопрос №1992341

июнь 16, 2016 г.

  • Всего ответов: 1

  • Вилия - аватарка

    Вилия

    14-й в

    Рассмотрим, что делает эта программа.
      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.

    октябрь 13, 2016 г.