В программе используется фрагмент одномерного целочисленного массива A с индексами от 1 до 10. Значения элементов равны 6, 7, 3, 8, 4, 1, 2, 0, 9, 5 соответственно, т. е. A[1] = 6, A[2] = 7 и т. д. Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на пяти языках программирования).
| Бейсик | Python |
|---|---|
s = 0 n = 10 FOR i = 3 TO n s = s+A(i)-A(i-2) NEXT i
| s = 0 n = 10 for i in range(3,n+1): s = s + A[i] – A[i-2]
|
| Паскаль | Алгоритмический язык |
s := 0; n := 10; for i:=3 to n do begin s := s + A[i] - A[i-2]; end;
| s := 0 n := 10 нц для i от 3 до n s := s + A[i] - A[i-2] кц |
| Си++ | |
s = 0; n = 10; for (i = 3; i <= n; i++) { s = s + A[i] - A[i-2]; }
| |
Можно заметить, что данный алгоритм, начиная с третьей суммы, вычитает то число, которое прибавлял 2 шага назад.
Поэтому, на самом деле, будет разность первых 2 (они пойдут со знаком минус) и последних 2 (они пойдут со знаком плюс) чисел, а все остальное сократится в 0:
Ответ: 1.
Примечание.
В языке Python первый элемент массива обязательно имеет индекс 0; в этом случае обозначение A[1] указывает не на номер элемента массива, а на его индекс.

