Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы, обрабатывающей одномерный целочисленный массив с индексами от 0 до 10.
| Бейсик | Python |
|---|---|
s = 27 n = 10 FOR i = 0 TO n-1 s = s+A(i)-A(i+1)+2 NEXT i
| s = 27 n = 10 for i in range(0,n): s = s + A[i] - A[i+1]+2
|
| Алгоритмический язык | Паскаль |
s := 27 n := 10 нц для i от 0 до n-1 s:=s+A[i]-A[i+1]+2 кц | s := 27; n := 10; for i:=0 to n-1 do begin s:=s+A[i]-A[i+1]+2 end; |
| Си++ | |
s = 27; n = 10; for (i = 0; i <= n-1; i++) { s=s+A[i]-A[i+1]+2; } | |
Известно, что в начале выполнения этого фрагмента в массиве находилась возрастающая последовательность чисел, то есть A[0] < A[1] < … < A[10].
Какое наибольшее значение может иметь переменная s после выполнения данной программы?
При завершении работы программы S = 27 + A[0] − A[n] + 2. Таким образом, S тем больше, чем меньше разница между A[0] и A[n]. А так как в массиве представлена возрастающая последовательность, то эта разница может быть минимум 10. Итого максимальное значение S = 27 − 10 + 2*10 = 37.

