Впрограмме используется одномерный целочисленный массив a с индексами от 0 до 9. значения элементов равны 6; 9; 7; 2; 1; 5; 0; 3; 4; 8 соответственно, т.е. a[0] = 6; a[1] = 9 и т.д. определите значение переменной c после выполнения следующего фрагмента программы. c : = 0; for i : = 1 to 9 do if a[i - 1] < a[i] then begin c : = c + 1; t : = a[i]; a[i] : = a[i - 1]; a[i - 1] : = t end;

Inozemceva1981 Inozemceva1981    3   19.06.2019 18:40    5

Ответы
datskivvera1 datskivvera1  15.07.2020 22:11
Рассмотрим, что делает эта программа.
  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.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика