Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 9. Перед началом выполнения данного фрагмента эти элементы массива имели значения 3, 5, 6, 2, 1, 6, 3, 1, 8, 3 (т. е. A[0] = 3, A[1] = 5, ..., A[9] = 3).
s = 0FOR k = 1TO9IF A(k) < A(k-1) THEN
t = A(k)
A(k) = A(k-1)
A(k-1) = t
s = s + k
ENDIFNEXT k
Определите значение переменной s после выполнения фрагмента.
Показать разбор и ответ
В цикле сравниваются все пары соседних элементов: нулевой
с первым, первый со вторым и т. д., всего 9 пар. На каждом проходе цикла сравнивается одна пара, и если её правый элемент меньше левого, то элементы меняются местами. Переменная при этом увеличивается на значение индекса правого элемента. Выполним последовательно все действия в цикле.
k
Массив до сравнения
Обмен
S
1
3 5 6 2 1 6 3 1 8 3
нет
2
3 5 6 2 1 6 3 1 8 3
нет
3
3 5 6 2 1 6 3 1 8 3
да
0 + 3 = 3
4
3 5 2 6 1 6 3 1 8 3
да
3 + 4 = 7
5
3 5 2 1 6 6 3 1 8 3
нет
6
3 5 2 1 6 6 3 1 8 3
да
7 + 6 = 13
7
3 5 2 1 6 3 6 1 8 3
да
13 + 7 = 20
8
3 5 2 1 6 3 1 6 8 3
нет
9
3 5 2 1 6 3 1 6 8 3
да
20 + 9 = 29
Ответ: 29
Это задание составили эксперты «СтатГрада» для Яндекса
Это задание решали 9 тыс. раз. С ним справились 68% пользователей.