• В программе используется одномерный целочисленный массив А с индексами от 0 до 9. Значения элементов равны 1,2,4,3,5,6,8,7,3,4,т.е А(0)=1 и тд. Определите значение переменной s после выполнения следующего фрагмента программы:
    s:=0
    for i:=1 to 9 do
    if A[i-1] A[i]:=A[i-1]+1
    s:=s+1
    end

Ответы 1

  • s := 0; (начальное значение счётчика)

     for i := 1 to 9 do  (цикл по i)

    if A[i - 1] < A[i] then begin (если текущий элемент больше предыдущего,

     s := s + 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 обменов, s = 6.

    Ответ: 6

    • Автор:

      case9
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years