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

