Разбор задач по теме Обработка массивов задание 19 ЕГЭ по информатике
Задание ЕГЭ19Жевтило Ирина АскольдовнаМБОУ «Лицей «Дубна»
№1. В программе используется одномерный целочисленный массив Aс индексами от 0 до 9. Значения элементов равны 4, 7, 3, 8, 5, 0, 1, 2, 9, 6соответственно, т.е. A[0] = 4, A[1] = 7 и т.д.Определите значение переменной c после выполнения следующегофрагмента этой программыc:=0;for i:=1 to 9 do if a[i]>a[9] then begin c:=c+1; t:=A[i]; A[i]:=A[9]; A[9]:=t; end;
{5940675A-B579-460E-94D1-54222C63F5DA} 0123456789c 47385012960i=14 60i=2 6 71i=3 3 71i=4 7 82i=5 5 82i=6 0 82i=7 1 82i=8 2 82i=9 893
№2. В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 3, 2, 9, 0, 4, 1, 8, 5, 7, 6 соответственно, т.е. A[0] = 3, A[1] = 2 и т.д.Определите значение переменной c после выполнения следующего фрагмента этой программыc := 0;for i := 0 to 8 doif A[i] < A[i+1] then begin c := c + 1; t := A[i]; A[i] := A[i+1]; A[i+1] := t;end;
{5940675A-B579-460E-94D1-54222C63F5DA} 0123456789 c 32904185760i=032 60нетi=1 92 71a[1] < a[2] i=2 20 71нетi=3 40 82a[3] < a[4] i=4 10 83a[4] < a[5] i=5 80 84a[5] < a[6] i=6 50 85a[6] < a[7] i=7 7086a[7] < a[8] i=8 607a[8] < a[9]
№3. В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 4, 7, 3, 8, 5, 0, 1, 2, 9, 6 _ соответственно, т.е. A[0] = 4, A[1] = 7 и т.д.Определите значение переменной c после выполнения следующего фрагмента этой программы c := 0;for i := 1 to 9 do if A[i] < A[0] then begin c := c + 1; t := A[i]; A[i] := A[0]; A[0] := t; end;
{5940675A-B579-460E-94D1-54222C63F5DA} 0123456789c 47385012960i=14 60i=2 6 71i=3 3 71i=4 7 82i=5 5 82i=6 0 82i=7 1 82i=8 2 82i=9 893
№4. Ниже представлен фрагмент программы. В начале выполнения этого фрагмента в массиве находились числа 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, т. е. A[1] = 9, A[2] = 8 и т. д. Чему будет равно значение переменной s после выполнения данной программы?s:=0;n:=10;for i:= 1 to n-1 do begin s:=s+A[i]*A[i]-A[i+1]*A[i+1];end;
Это число 9*9 - 0*0 Ответ: 81
№5. Ниже представлен фрагмент программы, обрабатывающей одномерный целочисленный массив с индексами от 0 до 10. Известно, что в начале выполнения этого фрагмента в массиве находилась возрастающая последовательность чисел, то есть A[0]<A[1]< …<A[10]. Какое наименьшее значение может иметь переменная s после выполнения данной программы? s := 0; n := 10; for i:=0 to n-1 do begin s:= s + A[i+1] - A[i] + 1 end;
Решение:Для того, чтобы найти наименьшее возможное значение s, проанализируем алгоритм программы:s:= s + A[i+1] - A[i] + 1 (каждый следующий элемент массива вычитает предыдущий)Другими словами, в переменной s находится сумма разниц между соседними элементами массива и еще добавляется 10 (" + 1 " на каждом из 10 шагов цикла)Учитывая, что элементы массива обязательно должны представлять возрастающую последовательность, а переменная s должна быть минимальной, возьмём минимально возможную возрастающую последовательность: 0, 1, 2, 3 и т.д.Следовательно, переменная s будет равна 10 (разница между элементами массива) + 10 (" + 1 " на каждом из 10 шагов цикла)Ответ: 20
№ 6. Ниже представлен фрагмент программы, обрабатывающей одномерный целочисленный массив с индексами от 0 до 10. В начале выполнения этого фрагмента в массиве находились трёхзначные натуральные числа. Какое наибольшее значение может иметь переменная s после выполнения данной программы?
Решение:Переменная s в цикле от 0 до 9 увеличивается на a[i]-a[i+1], т.е. увеличивается на разницу между соседними элементами массиваМаксимальная разница между двумя соседними элементами массива, в котором могут находиться только трёхзначные натуральные числа равна 899 (это 999-100)Если два первых элемента будут равны 999 и 100 соответственно, то на первом шаге s=899, а на втором шаге переменная s или уменьшит свое значение или останется без изменения. Вывод: smax=899Если два соседних элемента будут равны другим числам (не 999 и не 100), то s<899, на втором шаге s может увеличиться, но до 899, а потом или уменьшит свое значение или останется без изменения. Вывод: smax=899Ответ: 899