В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.
| Бейсик | Python |
|---|---|
FOR i = 0 TO 10 A(i) = 2*i NEXT i FOR i = 0 TO 4 A(10-i) = A(i) - 1; A(i) = A(10-i) - 1; NEXT i
|
for i in range(0, 11): A[i] = 2*i for i in range(0, 5): A[10-i] = A[i] - 1 A[i] = A[10-i] - 1
|
| Паскаль | Алгоритмический язык |
for i : = 0 to 10 do A[i] : = 2*i; for i : = 0 to 4 do begin A[10-i]:= A[i] - 1; A[i] : = A[10-i]-1; end;
|
нц для i от 0 до 10 A[i] : = 2*i кц нц для i от 0 до 4 A[10-i]:= A[i] - 1 A[i]:= A[10-i] - 1 кц
|
| Си++ | |
for (i = 0; i <= 10; i++) { A[i] = 2*i; } for (i = 0; n <= 4; i++) { A[10-i] = A[i] - 1; A[i] = A[10-i] - 1; } | |
Чему будут равны элементы этого массива?
1) 0 2 4 6 8 10 12 14 16 18 20
2) 19 17 15 13 11 10 -1 1 3 5 7
3) -2 0 2 4 6 10 7 5 3 1 -1
4) -1 1 3 5 7 9 11 13 15 17 19
Первый цикл, заполняем массив:
i=0: a[0]=0,
i=1: a[1]=2,
i=2: a[2]=4,
...
i=10: a[10]=20.
Второй цикл, меняем элементы масссива, причём заметим, что элемент a[10-i] задаётся через исходные элементы, а элемент а[i] задаётся через уже изменённый элемент a[10-i].
i=0:
a[10] = a[0] - 1 = -1,
a[0] = a[10] - 1 = -2.
i=1:
a[9] = a[1] - 1 = 1,
a[1] = a[9] - 1 = 0,
...
i=4:
a[6] = a[4] - 1 = 7
a[4] = a[6] - 1 = 6.
При заполнении этого массива мы использовали уже изменившиеся элементы
В итоге получаем следующие элементы: -2, 0, 2, 4, 6, 10, 7, 5, 3, 1, -1.
Правильный ответ указан под номером 3.

