В программе описан одномерный целочисленный массив с индексами от 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, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, т. е. А[0]=0, А[1]=10 и т. д. Чему будет равно значение переменной s после выполнения данной программы?
Из цикла видно, что с каждым проходом число s увеличивается на разницу между элементами массива с номерами, соответствующими данному проходу. Итого, в самом конце s должно быть равно сумме всех «расстояний» между элементами массива, то есть, «расстоянию» между последним и первым элементом, если элементы массива расположены в порядке возрастания. В данном массиве эта разность равна 100.

