В программе описан одномерный целочисленный массив с индексами от 0 до 12. Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы, обрабатывающей данный массив:
| Бейсик | Паскаль |
|---|---|
s = 0 n = 12 FOR i = 0 TO n IF A(n–i) – A(i) = A(i) THEN s = s+2*A(i) END IF NEXT i | s := 0; n := 12; for i:=0 to n do begin if A[n–i] – A[i] = A[i] then s:=s+2*A[i]; end; |
| Си++ | Алгоритмический язык |
s = 0; n = 12; for (i = 0; i <= n; i++) { if (A[n–i] – A[i] == A[i]) s = s+2*A[i]; } | s := 0 n := 12 нц для i от 0 до n если A[n–i] – A[i] = A[i] то s := s+2*A[i] все кц |
| Python | |
s = 0 n = 12 for i in range(0, n+1): if A[n–i] – A[i] == A[i]: s = s+2*A[i] | |
В начале выполнения этого фрагмента в массиве находились числа 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, т. е. A[0] = 0, A[1] = 10 и т. д. Чему будет равно значение переменной s после выполнения данной программы?
Действие «s:=s+2*A[i];» выполняется, если истинно условие «if A[n–i] – A[i] = A[i]». Данное условие выполнено только для i = 4, в этом случае A[8] − A[4] = 80 − 40 = 40 = A[4]. Переменная s примет значение s = 0 + 2 · 40 = 80.

