Решение задач ЕГЭ типа А17. 1. В программе описан одномерный целочисленный массив А с индексами от 1 до 10. Ниже представлен фрагмент программы, записанный на разных языках программирования, в котором значения элементов массива сначала задаются, а затем меняются. Бейсик Паскаль FOR i=1 TO 10 for i:=1 to 10 do A(i)=5+i A[i]:=5+i; NEXT i for i:=1 to 10 do FOR i=1 TO 10 if A[i]+i>12 then IF (A(i)+i >12) THEN A[i]:=A[i]+i; A(i)=A(i)+i end; ENDIF NEXT i Си Алгоритмический язык for (i=1; i<=10; i++) нц для i от 1 до 10 A[i]=5+i; A[i]:=5+i for (i=1; i<=10; i++) кц { if (A[i]+i>12) нц для i от 1 до 10 A[i]=A[i]+i; } если A[i]+i>12 то A[i]:=A[i]+i кц Сколько элементов массива будут нечетными? 1) 4 2) 6 3) 8 4) 10 Решение: 1) A[i]:=5+i 5+1 = 6 5+2 = 7 5+3 = 8 … 5+10 = 15 Итак, элементы массива = 6,7,8,9,10,11,12,13,14,15 2) for i:=1 to 10 do if A[i]+i>12 then A[i]:=A[i]+i; A[i]+i = 6+1 = 7 >12 Нет A[i]:=A[i]+i 7+2 = 9 8+3 = 11 9+4 = 13 Да 13 10+5 = 15 15 11+6 = 17 17 12+7 = 19 19 13+8 = 21 21 14+9 = 23 23 15+10 = 25 25 Итого 8 элементов массива нечетные. 2. Значения двумерного массива размера 7х7 задаются с помощью вложенного оператора цикла в представленном фрагменте программы Бейсик Паскаль Алгоритмический язык FOR n=1 TO 7 for n:=1 to 7 do нц для n от 1 до 7 FOR k=1 TO 7 for k:=1 to 7 do нц для k от 1 до 7 B(n, k)=k-n B[n, k]:=k-n; B[n, k]:=k-n NEXT k кц NEXT n кц Сколько элементов массива будут иметь положительные значения? 1) 49 2) 28 3) 21 4) 7 Решение: n= 1 2 3 4 5 k= 1,2,3,4,5,6,7 1-1 = 0 2-1 = 1 3-1 = 2 4-1 = 3 5-1 = 4 1-2 = -1 2-2 = 0 3-2 = 1 4-2 = 2 5-2 = 3 … 2-3 = -1 3-3 = 0 4-3 = 1 5-3 = 2 … … 4-4 = 0 5-4 = 1 4-5 = -1 5-5 = 0 … 5-6 = -1 … Итого 21 элемент массива имеет положительное значение. 6 7 6-1 = 5 6-2 = 4 6-3 = 3 6-4 = 2 6-5 = 1 6-6 = 0 6-7 = -1 7-1 = 6 7-2 = 5 7-3 = 4 7-4 = 3 7-5 = 2 7-6 = 1 7-7 = 0 Решите сами: 1. В программе описан одномерный целочисленный массив А с индексами от 1 до 10. Ниже представлен фрагмент программы, записанный на разных языках программирования, в котором значения элементов массива сначала задаются, а затем меняются. Бейсик Паскаль FOR i=1 TO 10 for i:=1 to 10 do A(i)=6+i A[i]:=6+i; NEXT i for i:=1 to 10 do FOR i=1 TO 10 if A[i]+i>11 then IF (A(i)+i >11) THEN A[i]:=A[i]+i; A(i)=A(i)+i end; ENDIF NEXT i Си Алгоритмический язык for (i=1; i<=10; i++) нц для i от 1 до 10 A[i]=6+i; A[i]:=6+i for (i=1; i<=10; i++) кц { if (A[i]+i>11) нц для i от 1 до 10 A[i]=A[i]+i; } если A[i]+i>11 то A[i]:=A[i]+i кц Сколько элементов массива будут четными? 1) 10 2) 9 3) 8 4) 7 2. В программе описан одномерный целочисленный массив А с индексами от 0 до 10. Ниже представлен фрагмент этой программы, записанный на разных языках программирования, в котором значения элементов массива сначала задаются, а затем меняются. Бейсик Паскаль FOR i=0 TO 10 for i:=0 to 10 do A(i)=i-1 A[i]:=i-1; NEXT i for i:=10 downto 1 do FOR i=10 TO 1 STEP -1 A[i-1]:=A[i]; A(i-1)=A(i) NEXT i Си for (i=0; i<=10; i++) A[i]=i-1; for (i=10; i>=1; i--) A[i-1]=A[i] Алгоритмический язык нц для i от 0 до 10 A[i]:=i-1 кц нц для i от 10 до 1 шаг -1 A[i-1]:=A[i] кц Чему окажутся равны элементы этого массива? 1) 99999999999 2) 01234567899 3) 012345678910 4) -1-1012345678 3. В программе описан одномерный целочисленный массив А с индексами от 0 до 10. Ниже представлен фрагмент программы, записанный на разных языках программирования, в котором значения элементов массива сначала задаются, а затем меняются. Бейсик Паскаль FOR i=0 TO 10 for i:=0 to 10 do A(i)=i A[i]:=i; NEXT i for i:=0 to 10 do FOR i=0 TO 10 begin A(10-i)=A(i) A[10-i]:=A[i]; A(i)=A(10-i) A[i]:=A[10-i]; NEXT i end; Си Алгоритмический язык for (i=0; i<=10; i++) нц для i от 0 до 10 A[i]=i; A[i]:=i for (i=0; i<=10; i++) кц { нц для i от 0 до 10 A[10-i]=A[i]; A[10-i]:=A[i] A[i]=A[10-i]; A[i]:=A[10-i] } кц Чему будут равны элементы этого массива после выполнения фрагмента программы? 1) 109876543210 2) 012345678910 3) 1098765678910 4) 01234543210 4. Все элементы двумерного массива А размером 10х10 элементов первоначально были равны 0. Затем значения элементов меняются с помощью вложенного оператора цикла в представленном фрагменте программы. Бейсик Паскаль Алгоритмический язык FOR n=1 TO 4 for n:=1 to 4 do нц для n от 1 до 4 FOR k=n TO 4 for k:=n to 4 do нц для k от n до 4 A(n, k)=A(n, k)+1 begin A[n, k]:=A[n, k]+1 A(k, n)=A(k, n)+1 A[n, k]:=A[n, k]+1; A[k, n]:=A[k, n]+1 NEXT k A[k, n]:=a[k, n]+1; кц NEXT n end кц Сколько элементов массива в результате будут равны 1? 1) 0 2) 16 3) 12 4) 4 5. Дан фрагмент программы, обрабатывающей двумерный массив А размером nхn. Бейсик Паскаль Алгоритмический язык k=1 k:=1; k:=1 FOR i=1 TO n for i:=1 to n do нц для i от 1 до n c=A(i,i) begin c:=A[i,i] A(i,i)= A(k,i) A(k,i)=c NEXT i c:=A[i,i]; A[i,i]:=A[k,i] A[i,i]:=A[k,i]; A[k,i]:=c A[k,i]:=c; кц end Представим массив в виде квадратной таблицы, в которой для элемента массива A[i,j] величина i является номером строки, а величина j – номером столбца, в котором расположен элемент. Тогда данный алгоритм меняет местами 1) два столбца в таблице 2) две строки в таблице 3) элементы диагонали и k-ой строки таблицы 4) элементы диагонали и k-го столбца таблицы 6. Значения двух массивов A[1..100] и В[1..100] задаются с помощью следующего фрагмента программы: Бейсик Паскаль Алгоритмический язык FOR n=1 TO 100 for n:=1 to 100 do нц для n от 1 до 100 A(n)=(n-80)*(n-80) A[n]:=(n-80)*(n-80); A[n]:=(n-80)*(n-80) NEXT n for n:=1 to 100 do кц FOR n=1 TO 100 B[101-n]:=A[n]; нц для n от 1 до 100 B(101-n)=A(n) B[101-n]:=A[n] NEXT n кц Какой элемент массива В будет наибольшим? 1) B[1] 2) B[21] 3) B[80] 4) B[100] 7. Значения двух массивов A[1..100] и В[1..100] задаются с помощью следующего фрагмента программы: Бейсик Паскаль Алгоритмический язык FOR n=1 TO 100 for n:=1 to 100 do нц для n от 1 до 100 A(n)=n-10 A[n]:=n-10; A[n]:=n-10 NEXT n for n:=1 to 100 do кц FOR n=1 TO 100 B[n]:=A[n]*n; нц для n от 1 до 100 B(n)=A(n)*n B[n]:=A[n]*n NEXT n кц Сколько элементов массива В будут иметь положительные значения? 1) 10 2) 50 3) 90 4) 100