Категория A12 • задача №2
Условие задачи
Дано:
в программе описан одномерный целочисленный массив А с индексами от 0 до 10 и целочисленные переменные k, i. Ниже представлен фрагмент одной и той же программы, записанный на разных языках программирования, в котором значения элементов сначала задаются, а затем меняются.
язык программирования Pascal | язык программирования Basic |
for i := 0 to 10 do | FOR i = 0 to 10 |
A[i] := i; | A(i) = i |
for i := 0 to 10 do | NEXT i |
begin | FOR i = 0 to 10 |
k := A[i]; | k = A(i) |
A[i] := A[10 - i]; | A(i) = A(10 - i) |
k := A[10 - i]; | k = A(10 - i) |
end; | NEXT i |
Вопрос:
чему будут равны элементы этого массива?
Варианты ответа:
10 9 8 7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 4 3 2 1 0
10 9 8 7 6 5 6 7 8 9 10
Решение
I этап: рассмотрим первый цикл со счетчиком, инициализирующий элементы массива
for i := 0 to 10 do
A[i] := i;
в данном цикле элементу массива с индексом i присваивается аналогичное значение, то есть, в первый элемент массива запишется число равное 1, во второй элемент массива - число равное 2 и так далее.
Следовательно, проинициализированный массив примет вид:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | значение |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | индекс |
II этап: рассмотрим тело второго цикла.
k := A[i];
A[i] := A[10 - i];
k := A[10 - i];
В данном фрагменте, как может показаться при поверхностном осмотре, происходит обмен значений элементов массива с индексами [i] и [10 - i], но на самом деле это не так. Сначала в переменную k присваивается значение i-го элемента массива, затем в i-ый элемент присваивается значение элемента с индексом 10 - i и затем происходит переприсваивание переменной k.
В итоге, в приведенном коде, элементу массива с индексом [i] присваивается значение элемента с индексом [10 - i].
III этап: анализ алгоритма из второго цикла
когда i = 0, то происходит присваивание элементу с индексом [0] значения элемента с индексом [10 - 0]=[10]:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ⇒ | 10 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
когда i = 1, то происходит присваивание элементу с индексом [1] значения элемента с индексом [10 - 1]=[9]:
10 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ⇒ | 10 | 9 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
когда i = 2, то происходит присваивание элементу с индексом [2] значения элемента с индексом [10 - 2]=[8]:
10 | 9 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ⇒ | 10 | 9 | 8 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
когда i = 3, то происходит присваивание элементу с индексом [3] значения элемента с индексом [10 - 3]=[7]:
10 | 9 | 8 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ⇒ | 10 | 9 | 8 | 7 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
когда i = 4, то происходит присваивание элементу с индексом [4] значения элемента с индексом [10 - 4]=[6]:
10 | 9 | 8 | 7 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ⇒ | 10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
когда i = 5, то происходит присваивание элементу с индексом [5] значения элемента с индексом [10 - 5]=[5]:
10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 | ⇒ | 10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
когда i = 6, то происходит присваивание элементу с индексом [6] значения элемента с индексом [10 - 6]=[4]:
10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 | ⇒ | 10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
когда i = 7, то происходит присваивание элементу с индексом [7] значения элемента с индексом [10 - 7]=[3]:
10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 | ⇒ | 10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
когда i = 8, то происходит присваивание элементу с индексом [8] значения элемента с индексом [10 - 8]=[2]:
10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 | ⇒ | 10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
когда i = 9, то происходит присваивание элементу с индексом [9] значения элемента с индексом [10 - 9]=[1]:
10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 | ⇒ | 10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
если i = 10, то происходит присваивание элементу с индексом [10] значения элемента с индексом [10 - 10]=[0]:
10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 | ⇒ | 10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
После работы программы массив принял окончательный следующий вид:
10 | 9 | 8 | 7 | 6 | 5 | 6 | 7 | 8 | 9 | 10 | значение |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | индекс |
Среди предложенных вариантов ответа, вариант под номером четыре имеет абсолютно идентичное значение.
Вывод: |
после выполнения предложенного фрагмента программы элементы массива будут равны: 10 9 8 7 6 5 6 7 8 9 10 |
Ответ: |
4 |
Категория A12 • задача №2
Остальные решения из билета №2 для подготовки к ЕГЭ по информатике 2013
Условие задачи (наведите курсор мыши на ссылку) |
Аудиовизуальное решение |
Мультимедийная видеопрезентация |
Решение в формате слайд-шоу |
Текстовое решение |
---|
Комментарии