Предмет: Информатика, автор: Kanareika16

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


iolandavalerypad353: это на каком языке написано?
iolandavalerypad353: что это такое if A[i-1] A[i]:=A[i-1]+1 ?
ankatorsukova: Это алгоритмы с использованием условного оператора

Ответы

Автор ответа: ankatorsukova
3

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

Похожие вопросы
Предмет: Литература, автор: tahyusik