Решение: Обработка массива в цикле
В программе используется одномерный целочисленный массив $A$ с индексами от $0$ до $11$. Значения элементов массива приведены в таблице. Определите значение переменной $s$ после выполнения фрагмента программы: сначала $s := 0$, $n := 2$, затем для всех $i$ от $0$ до $11$ выполняется условие: если $A[i] > A[n]$, то $s := s + A[i] + i$, иначе $A[n] := A[i]$.
| i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A[i] | 14 | 13 | 15 | 8 | 4 | 12 | 30 | 21 | 22 | 16 | 5 | 9 |
Решение по шагам
4 шагаИзначально $A[2] = 15$ и $s = 0$. При обработке индексов $0$, $1$, $3$ и $4$ условие не выполняется, поэтому значение $A[2]$ последовательно изменяется: $15 \to 14 \to 13 \to 8 \to 4$.
$$A[2] = 4$$При $i = 5$ имеем $A[5] = 12 > 4$, поэтому к сумме прибавляется $12 + 5 = 17$.
$$s = 17$$Для индексов $6$, $7$, $8$, $9$, $10$ и $11$ условие также выполняется, поэтому прибавляются соответствующие значения.
$$s = 17 + (30+6) + (21+7) + (22+8) + (16+9) + (5+10) + (9+11)$$Вычисляем итоговую сумму.
$$s = 17 + 36 + 28 + 30 + 25 + 15 + 20 = 171$$Где здесь ошибаются
Не учитывать изменение элемента $A[2]$ при невыполнении условия.
Считать сравнение только с первоначальным значением $A[2] = 15$.
Не прибавлять индекс $i$ к значению $A[i]$.