Разбор задачи A17 (демо ЕГЭ 2011)
В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, записанный на разных языках программирования, в котором значения элементов массива сначала задаются, а затем меняются.
Бейсик | Паскаль |
---|---|
FOR i=0 TO 10 A(i)=i-1 NEXT i FOR i=10 TO 1 STEP -1 A(i-1)=A(i) NEXT i |
for i:=0 to 10 do A[i]:=i-1; for i:=10 downto 1 do A[i-1]:=A[i]; |
Си | Алгоритмический язык |
for (i=0;i<=10;i++) A[i]=i-1; for (i=10;i>=1;i--) A[i-1]=A[i]; |
нц для i от 0 до 10 A[i]:=i-1 кц нц для i от 10 до 1 шаг -1 A[i-1]:=A[i] кц |
Чему окажутся равны элементы этого массива?
- 9 9 9 9 9 9 9 9 9 9 9
- 0 1 2 3 4 5 6 7 8 9 9
- 0 1 2 3 4 5 6 7 8 9 10
- -1 -1 0 1 2 3 4 5 6 7 8
В данном фрагменте программы описана работа 2-х циклов. В первом цикле в массив записываются цифры:
A[0]=-1, A[1]=0, A[2]=1, A[3]=2, A[4]=3, A[5]=4, A[6]=5, A[7]=6, A[8]=7, A[9]=8, A[10]=9.
Во втором цикле в элемент A[9] нового массива записывается значение A[10] старого массива: A[9]=A[10]=9. Далее в следующий элемент массива записывается значение предыдущего элемента того же массива: A[8]=A[9]=9. Это повторяется для всех остальных элементов с индексами:7,6,5,4,3,2,1,0. Они все принимают значение 9. Значение элемента массива A[10] во втором цикле не меняется, поэтому A[10]=9.
В результате получим: 9,9,9,9,9,9,9,9,9,9,9.