В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы, обрабатывающей данный массив:
| Бейсик | Паскаль |
|---|---|
s = 0 n = 10 FOR i = 1 ТО n s = s + A(i) - A (i-1) NEXT i | s: = 0; n : = 10 ; for i : = 1 to n do begin s : = s + A[i] - A[i-1]; end |
| Си++ | Алгоритмический язык |
s = 0; n = 10; for (i = 1; i <= n; i++) { s = s + A[i] - A[i - 1]; } | s: = 0 n : = 10 нц для i от 1 до n s := s + A[i] - A[i - 1] кц |
| Python | |
s = 0 n = 10 for i in range(1, n+1): s = s + A[i] - A[i - 1] | |
В начале выполнения этого фрагмента в массиве находились числа 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, т. е. А[0]=0, А[1]=2 и т. д. Чему будет равно значение переменной s после выполнения данной программы?
Из цикла видно, что с каждым проходом число s увеличивается на разницу между элементами массива с номерами, соответствующими данному проходу. Итого, в самом конце s должно быть равно сумме всех «расстояний» между элементами массива, то есть, «расстоянию» между последним и первым элементом, если элементы массива расположены в порядке возрастания. В данном массиве эта разность равна 20.

