A17 — обработка массивов и матриц

advertisement
A17 — обработка массивов и матриц
Пример задания : В программе описан одномерный целочисленных массива A с
индексами от 0 до 10. Ниже представлен фрагмент программы, в котором значения
элементов сначала задаются, а затем меняются.
for i:=0 to 10 do
A[i]:=i+1;
for i:=10 dowto 0 do
А[i]:=A[10-i];
Чему окажутся равны элементы массива?
1)
10 9 8 7 6 5 4 3 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)
12345654321
Решение:
1) заполняем массив по формуле A[i]:=i+1:
i
0
A[i]
до 1
перестановки
A[i]
после
перестановки
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
11
комментарии
for i:=0 to 10 do
A[i]:=i+1;
for i:=10 dowto
0 do
А[i]:=A[10-i];
2) выполняем перестановку (для наглядности одновременно заполняем таблицу),
начиная с последнего элемента массива по формуле:
А[i]:=A[10-i];
А[10]:=A[10-10]:=А[0]:=1;
А[9]:=A[10-9]:=А[1]:=2;
А[8]:=A[10-8]:=А[2]:=3;
А[7]:=A[10-7]:=А[3]:=4;
А[6]:=A[10-6]:=А[4]:=5;
А[5]:=A[10-5]:=А[5]:=6;
А[4]:=A[10-4]:=А[6] посмотрим, что у нас в недавно заполненной ячейке А[6]:= 5,
значит А[4]:=5;
А[3]:=A[10-3]:=А[7]:=4;
А[2]:=A[10-2]:=А[8]:=3;
А[1]:=A[10-1]:=А[9]:=2;
А[0]:=A[10-0]:=А[10]:=1;
Таким образом,
i
0
1
2
3
4
5
6
7
8
9
10 комментарии
A[i]
до 1
2
3
4
5
6
7
8
9
10 11 for i:=0 to 10 do
перестановки
A[i]:=i+1;
A[i]
после 1
2
3
4
5
6
5
4
3
2
1
for i:=10 dowto
перестановки
0
do
А[i]:=A[10-i];
Ответ: 4
Допущенные ошибки:
 Большинство обучающихся допустили ошибку, подсчитывая четвертый
элемент массива, забыв, что только, что изменили значение шестого
элемента, та же проблема с A[3] по A[0].
Тренировочные задания в формате ЕГЭ:
1.
В программе описан одномерный целочисленных массива A синдексами от
1 до 10. Ниже представлен фрагмент программы,записанный на разных языках
программирования, в котором значения элементов сначала задаются, а затем меняются.
Паскаль
for i:=1 to 10 do
A[i]:=10-i;
for i:=1 to 7 do
А[i+3]:=A[i]+A[i+3];
Сколько элементов массива будут нечетными?
1) 4 2) 6 3) 9 4) 10
2.
В программе описан одномерный целочисленных массива A синдексами от
1 до 10. Ниже представлен фрагмент программы,записанный на разных языках
программирования, в котором значения элементов сначала задаются, а затем меняются.
Паскаль
for i:=1 to 10 do
A[i]:=10-i;
for i:=1 to 8 do
А[i+2]:=A[i]+A[i+2];
Сколько элементов массива будут четными?
1) 1
2) 5 3) 7
4) 9
3.
В программе описан одномерный целочисленный массив A с индексами от 0
до 10 и целочисленные переменные k, i. Ниже представлен фрагмент одной и той же
программы, записанный на разных языках программирования, в котором значения
элементов сначала задаются, а затем меняются.
Паскаль
for i:=0 to 10 do
A[i]:= i * 2;
for i:=10 downto 0 do
begin
k:= A[10-i];
A[10-i]:=A[i];
A[i]:=k;
end;
Чему будут равны элементы этого массива?
1) 0 2 4 6 8 10 8 6 4 2 0
2) 20 18 16 14 12 10 12 14 16 18 20
3) 20 18 16 14 12 10 8 6 4 2 0
4) 0 2 4 6 8 10 12 14 16 18 20
4.
В программе описан одномерный целочисленный массив A с индексами от 0
до 10 и целочисленные переменные k, i. Ниже представлен фрагмент одной и той же
программы, записанный на разных языках программирования, в котором значения
элементов сначала задаются, а затем меняются. Чему будут равны элементы этого
массива?
Паскаль
for i:=0 to 10 do
A[i]:= i + 2;
for i:=10 downto 0 do
begin
k:= A[10-i];
A[10-i]:=A[i];
A[i]:=k;
end;
Чему будут равны элементы этого массива?
1) 12 11 10 9 8 7 6 5 4 3 2
2) 12 11 10 9 8 7 8 9 10 11 12
3) 2 3 4 5 6 7 8 9 10 11 12
4) 2 3 4 5 6 7 6 5 4 3 2
5.
В программе описан одномерный целочисленных массива A с индексами от
1 до 10. Ниже представлен фрагмент программы, записанный на разных языках
программирования, в котором значения элементов сначала задаются, а затем меняются.
Сколько элементов массива будут нечетными?
Паскаль
for i:=1 to 10 do
A[i]:=5+i;
for i:=1 to 10 do
if A[i]+i>12 then
А[i]:=A[i]+i;
Сколько элементов массива будут нечетными?
1) 4 2) 6 3) 8 4) 10
6.
В программе описан одномерный целочисленных массива A с индексами от
1 до 10. Ниже представлен фрагмент программы, записанный на разных языках
программирования, в котором значения элементов сначала задаются, а затем меняются.
Сколько элементов массива будут четными?
Паскаль
for i:=1 to 10 do
A[i]:=6+i;
for i:=1 to 10 do
if A[i]+i>11 then
А[i]:=A[i]+i;
1) 10 2) 9 3) 8 4) 7
Download