Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 10. Перед началом выполнения данного фрагмента эти элементы массива имели значения 3, 5, 8, 12, 11, 4, 7, 2, 9, 6, 11 (т. е. A[0] = 3, A[1] = 5, …, A[10] = 11). Определите значение переменной s после выполнения фрагмента.
| Бейсик | Python |
|---|---|
s = 0 n = 4 FOR k = 1 TO 10 IF s < A(n) THEN s = s + A(k) ELSE A(n) = A(n) + A(k) END IF NEXT k
| s = 0 n = 4 for k in range(1,11): if s < A[n]: s += A[k] else: A[n] += A[k]
|
| Паскаль | Алгоритмический язык |
s := 0; n := 4; for k:=1 to 10 do begin if s < A[n] then s := s + A[k] else A[n] := A[n] + A[k] end;
| s := 0 n := 4 нц для k от 1 до 10 если s < A[n] то s := s + A[k] иначе A[n] := A[n] + A[k] все кц |
| С++ | |
s = 0; n = 4; for (k = 1; k < 11; ++k) { if (s < A[n]) { s += A[k]; else A[n] += A[k]; } | |
Данный алгоритм накапливает значение текущего элемента массива в переменной s, если переменная s больше значения элемента массива с индексом 4, иначе значение текущего элемента массива прибавляется к значению элемента массива с индексом 4. После первой итерации цикла переменная s станет равна 5. Далее переменная s и значение элемента A[4] будут изменяться следующим образом.
Значения элементов после второй итерации: 3, 5, 8, 12, 11, 4, 7, 2, 9, 6, 11. Переменная s = 13.
Третья итерация: 3, 5, 8, 12, 23, 4, 7, 2, 9, 6, 11. Переменная s = 13.
Четвёртая итерация: 3, 5, 8, 12, 23, 4, 7, 2, 9, 6, 11. Переменная s = 36.
Пятая итерация: 3, 5, 8, 12, 27, 4, 7, 2, 9, 6, 11. Переменная s = 36.
Шестая итерация: 3, 5, 8, 12, 34, 4, 7, 2, 9, 6, 11. Переменная s = 36.
Седьмая итерация: 3, 5, 8, 12, 36, 4, 7, 2, 9, 6, 11. Переменная s = 36.
Восьмая итерация: 3, 5, 8, 12, 45, 4, 7, 2, 9, 6, 11. Переменная s = 36.
Далее в переменной s до конца работы программы будут накапливаться значения оставшихся элементов массива. Таким образом, s = 36 + 6 + 11 = 53.
Ответ: 53.

