Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 10. Перед началом выполнения данного фрагмента эти элементы массива имели значения 3, 5, 8, 12, 11, 5, 7, 2, 9, 6, 11 (т. е. A[0] = 3, A[1] = 5, …, A[10] = 11). Определите значение переменной s после выполнения фрагмента.
| Бейсик | Python |
|---|---|
s = 0 n = 6 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 = 6 for k in range(1,11): if s < A[n]: s += A[k] else: A[n] += A[k]
|
| Паскаль | Алгоритмический язык |
s := 0; n := 6; 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 := 6 нц для k от 1 до 10 если s < A[n] то s := s + A[k] иначе A[n] := A[n] + A[k] все кц |
| С++ | |
s = 0; n = 6; for (k = 1; k < 11; ++k) { if (s < A[n]) { s += A[k]; else A[n] += A[k]; } | |
Данный алгоритм накапливает значение текущего элемента массива в переменной s, если переменная s больше значения элемента массива с индексом 6, иначе значение текущего элемента массива прибавляется к значению элемента массива с индексом 6. За после первой итерации цикла переменная s станет равна 5. Далее переменная s и значение элемента A[6] будут изменяться следующим образом.
Значения элементов после второй итерации: 3, 5, 8, 12, 11, 5, 7, 2, 9, 6, 11. Переменная s = 13.
Третья итерация: 3, 5, 8, 12, 11, 5, 19, 2, 9, 6, 11. Переменная s = 13.
Четвёртая итерация: 3, 5, 8, 12, 11, 5, 19, 2, 9, 6, 11. Переменная s = 24.
Пятая итерация: 3, 5, 8, 12, 11, 5, 48, 2, 9, 6, 11. Переменная s = 24.
Далее в переменной s до конца работы программы будут накапливаться значения оставшихся элементов массива. Таким образом, s = 24 + 2 + 9 + 6 + 11 = 52.
Ответ: 52.

