В программе используется одномерный целочисленный массив A с индексами от 0 до 11. Значения элементов равны 14, 13, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9 соответственно, т. е. A[0] = 14, A[1] = 13 и т. д. Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на пяти языках программирования).
| Бейсик | Python |
|---|---|
s = 0 n = 1 FOR i = 0 TO 11 IF A(i) > A(n) THEN s = s + A(i) + i ELSE A(n) = A(i) END IF NEXT i
| s = 0 n = 1 for i in range(12): if A[i] > A[n]: s += A[i] + i else: A[n] = A[i]
|
| Паскаль | Алгоритмический язык |
s := 0; n := 1; for i := 0 to 11 do if A[i] > A[n] then s := s + A[i] + i else A[n] := A[i];
| s := 0 n := 1 нц для i от 0 до 11 если A[i] > A[n] то s := s + A[i] + i иначе A[n] := A[i] все кц |
| Си++ | |
s = 0; n = 1; for (int i = 0; i < 12; i++) { if (A[i] > A[n]) s += A[i] + i; else A[n] = A[i]; }
| |
Данный алгоритм сравнивает каждый элемент массива с элементом массива с индексом 1, после чего либо накапливает в переменной s значение элемента A[i] и индекса i, если A[i] > A[1], либо приравнивает элементу массива с индексом 1 значение элемента массива A[i].
Изначальный порядок значений: 14, 13, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9.
Первая итерация: 14, 13, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9. Теперь s = 14 + 0 = 14.
Вторая итерация: 14, 13, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9.
Третья итерация: 14, 13, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9. Теперь s = 14 + 15 + 2 = 31.
Четвёртая итерация: 14, 8, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9.
Пятая итерация: 14, 4, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9.
Шестая итерация: 14, 4, 15, 8, 4, 12, 30, 21, 22, 16, 5, 9. Теперь s = 31 + 12 + 5 = 48.
Далее элементы массива изменяться не будет. К переменной s к концу исполнения цикла будет прибавленна сумма значений и индексов оставшихся элементов массива.
Таким образом, значение переменной s после выполнения данного фрагмент программы равно:
s = 48 + 30 + 6 + 21 + 7 + 22 + 8 + 16 + 9 + 5 + 10 + 9 + 11 = 202.
Ответ: 202.

