Впрограмме используется одномерный целочисленный массив а с индексами от 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

diankapazyukа diankapazyukа    2   28.09.2019 07:31    2

Ответы
егорка158 егорка158  09.10.2020 00:19

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

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика