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