В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен записанный на разных языках программирования,фрагмент одной и той же программы, обрабатывающей данный массив:
| Бейсик | Паскаль |
|---|---|
s = 0 n = 10 FOR i = 0 TO n IF A(n − i)-A(i) > A(i) THEN s = s + A(i) END IF NEXT i | s := 0; n := 10; for i:=0 to n do begin if A[n - i] - A[i] > A[i] then s := s + A[i]; end; |
| Си++ | Алгоритмический язык |
s = 0; n = 10; for (i = 0; i <= n; i++ ) if(A[n - i]-A[i] > A[i]) s = s+ A[i]; | s := 0 n:=10 нц для i от 0 до n если A[n - i] - A[i] > A[i] то s := s + A[i] все кц |
| Python | |
s = 0 n = 10 for i in range(0, n+1): if A[n - i]-A[i] > A[i]: s = s+ A[i] | |
В начале выполнения этого фрагмента в массиве находились числа 0,2,4,6,8,10,12,14,16,18,20 т. е. A[0] = 0, A[1] = 2 и т. д. Чему будет равно значение переменной s после выполнения данной программы?
Цикл выполняется, пока разность A[n − i] − A[i] больше, чем A[i]. При i=0, 1, 2, 3, 4 получаем:
i=0: A[10] − A[0] = 20 − 0 > A[0], s:=0 + 0 = 0;
i=1: A[9] − A[1] = 18 − 2 > A[1], s:=0 + 2 = 2;
i=2: A[8] − A[2] = 16 − 4 > A[1], s:=2 + 4 = 6;
i=3: A[7] − A[3] = 14 − 6 > A[1], s:=6 + 6 = 12.
Условие A[n − i] − A[i] > A[i] перестанет выполняться на пятом шаге, когда 12 − 8 > 8 — неверно. Таким образом, присваивание s := s + A[i] выполнится для первых четырех элементов. После выполнения программы получим s = 12.

