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

