Задача 19

Задача из досрочного ЕГЭ 2015 года.

В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 8, 4, 3, 0, 7, 2, 1, 5, 9, 6 соответственно, т.е. A[0] = 8, A[1] = 4 и т.д. Определите значение переменной s после выполнения следующего фрагмента этой программы.

s := 0;
for j := 0 to 8 do
 if A[j] > A[j+1] then
 begin
 s := s + 1;
 t := A[j];
 A[j] := A[j+1];
 A[j+1] := t;
 end;

Проанализировав фрагмент программы мы видим, что просматривая элементы массива с 0-го по 8-ой сравнивается текущий элемент со следующим. И если текущий больше, то элементы меняют местами (t := A[j];  A[j] := A[j+1];  A[j+1] := t;  ) и увеличивают на 1 нужную нам переменную S.

Прокрутим алгоритм вручную, построив таблицу трассировки, и увидим, что конечное значение переменной S = 8.

j
A[j]
A[j+1]
A[j]>a[j+1]
A[j]
A[j+1]
s
0
8
4
+
4
8
1
1
8
3
+
3
8
2
2
8
0
+
0
8
3
3
8
7
+
7
8
4
4
8
2
+
2
8
5
5
8
1
+
1
8
6
6
8
5
+
5
8
7
7
8
9
-
8
9
7
8
9
6
+
6
9
8


Комментариев нет:

Отправить комментарий