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

