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