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