В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном...

0 голосов
64 просмотров

В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном
ниже фрагменте программы массив сначала заполняется, а потом изменяется:
for i:=0 to 10 do
A[i]:= i + 1;
for i:=10 downto 0 do
A[i]:= A[10-i];
Чему будут равны элементы этого массива?
1) 10 9 8 7 6 5 4 3 2 1 0
2) 11 10 9 8 7 6 5 4 3 2 1
3) 11 10 9 8 7 6 7 8 9 10 11
4) 1 2 3 4 5 6 5 4 3 2 1
Ответ будет 4, объясните как получается пожалуйста, просто у меня другие ответы получились


Информатика (463 баллов) | 64 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

1. Сначала элементы массива получают значения по формуле
\displaystyle a_i=i+1, \ i=0,1,2,...10
Получаем в массиве значения 1,2,3, ... 11.
2. Далее, походим по массиву с конца, т.е. от элемента с номером 10 к номеру 1 и каждому элементу присваиваем значение элемента, индекс которого равен 10-i, где i - индекс текущего элемента.

Получается, что в a₁₀ попадает значение элемента с индексом 10-10=0, т.е a₀=1 и теперь a₁₀=1.
Затем в a₉ попадает значение элемента с индексом 10-9=1, т.е a₁=2 и получаем a₉=2.
Далее a₈=3, потому что а₂ переписывается в а₈, а₇=4, а₆=5.
И вот, когда i=5, 10-i тоже равно 5 и получаем, что в а₅ переписывается содержимое самого а₅, т.е. а₅ остается равным 6.
А затем в а₄ попадет содержимое а₆ (10-4=6), а туда (см. чуть выше, выделено жирным) мы записали то, что было в а₄, поэтому фактически а₄, а₃, ... а₀ не поменяются.

Итоговые значения будут такими: 1 2 3 4 5 6 5 4 3 2 1 - ответ с номером 4.

(150k баллов)
0

Теперь понял, спасибо большое

0 голосов

Ну тип сначала получается массив 1 2 3 4 5 6 7 8 9 10 11
а потом в обратном порядке вычитается i
1 2 3 4 5 6 7 8 9 10 1
1 2 3 4 5 6 7 8 9 2 1
1 2 3 4 5 6 7 8 3 2 1
1 2 3 4 5 6 7 4 3 2 1
1 2 3 4 5 6 5 4 3 2 1
1 2 3 4 5 6 5 4 3 2 1 ну и уже типо нечего вычитать и всио

0

Вот смотри когда вычисляем для 2-го массива, А[10]:=[10-11] A[10]=-1

0

Или я не так вычисляю?