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