Задача 19
В программе используется одномерный целочисленный массив A с индексами от 0 до 11. Значения элементов равны 20, 19, 17, 41, 23, 12, 24, 16, 4, 13, 6, 15 соответственно, т.е. A[0]=20, A[1]=19 и т.д. Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на пяти языках программирования).
Сначала попытаемся понять, что же делает эта программа:
- в цикле рассматриваются пары элементов: текщий и нулевой элементы, начиная с пары (A[0],A[0]) и заканчивая парой (A[11],A[0]);
- если текущий элемент A[i] меньше или равен нулевого (A[n]), они меняются местами через вспомогательную переменную t;
- начальное значение переменной s, которая нас интересует, равно нулю. При каждой перестановке оно увеличивается на i (начиная с нуля), то есть, s – сумма номеров элементов, удовлетворяющих условию.
Для первой пары выполняется условие A[0]≤A[0], поэтому выполняется перестановка:
20 19 17 41 23 12 24 16 4 13 6 15
Следующая перестановка будет для пары (A[1], A[0]):
20 19 17 41 23 12 24 16 4 13 6 15
19 20 17 41 23 12 24 16 4 13 6 15
Седующая – для пары (A[2], A[0]):
19 20 17 41 23 12 24 16 4 13 6 15
17 20 19 41 23 12 24 16 4 13 6 15
Седующая – для пары (A[5], A[0]):
17 20 19 41 23 12 24 16 4 13 6 15
12 20 19 41 23 17 24 16 4 13 6 15
Седующая – для пары (A[8], A[0]):
17 20 19 41 23 12 24 16 4 13 6 15
4 20 19 41 23 17 24 16 12 13 6 15
Таким образом, всего было сделано 5 перестановок элементов с номерами 0, 1, 2, 5, 8.
После выполнения цикла значение переменной s будет равно сумме этих номеров - 16.
Ответ: 16.