Демонстрационный вариант ЕГЭ 2019 г. – задание №19
В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 2, 4, 3, 6, 3, 7, 8, 2, 9, 1 соответственно, т.е. A[0] = 2, A[1] = 4 и т.д.
Определите значение переменной c после выполнения следующего фрагмента этой программы, записанного ниже на пяти языках программирования
Бейсик
c = 0 FOR i = 1 TO 9 IF A(i-1) < A(i) THEN c = c + 1 t = A(i) A(i) = A(i-1) A(i-1) = t END IF NEXT i
Python
c = 0 for i in range(1, 10): if A[i-1] < A[i]: c = c + 1 A[i-1], A[i] = A[i], A[i-1]
Алгоритмический язык
c := 0 нц для i от 1 до 9 если A[i-1] < A[i] то c := c + 1 t := A[i] A[i] := A[i-1] A[i-1] := t все кц
Паскаль
c := 0; for i := 1 to 9 do if A[i-1] < A[i] then begin c := c + 1; t := A[i]; A[i] := A[i-1]; A[i-1] := t; end;
С++
c = 0; for (int i = 1; i < 10; i++) if (A[i-1] < A[i]){ c++; t = A[i]; A[i] = A[i-1]; A[i-1] = t; }
Решение:
2 4 3 6 3 7 8 2 9 1
4 2 c=1
3 2 c=2
6 2 c=3
3 2 c=4
7 2 c=5
8 2 c=6
9 2 c=7
Ответ: 7
Демонстрационный вариант ЕГЭ 2018 г. – задание №19
В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 3, 0, 4, 6, 5, 1, 8, 2, 9, 7 соответственно, т.е. A[0] = 3, A[1] = 0 и т.д. Определите значение переменной c после выполнения следующего фрагмента этой программы (записанного ниже на разных языках программирования).
Бейсик
c = 0 FOR i = 1 TO 9 IF A(i-1) > A(i) THEN c = c + 1 t = A(i) A(i) = A(i-1) A(i-1) = t END IF NEXT i
Python
c = 0 for i in range(1,10): if A[i-1] > A[i]: c = c + 1 t = A[i] A[i] = A[i-1] A[i-1] = t
Алгоритмический язык
c := 0 нц для i от 1 до 9 если A[i-1] > A[i] то c := c + 1 t := A[i] A[i] := A[i-1] A[i-1] := t все
Паскаль
c := 0; for i := 1 to 9 do if A[i-1] > A[i] then begin c := c + 1; t := A[i]; A[i] := A[i-1]; A[i-1] := t; end;
С++
c = 0; for (int i = 1; i < 10; i++) if (A[i-1] > A[i]){ c++; t = A[i]; A[i] = A[i-1]; A[i-1] = t; }
Решение:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
3 | 0 | 4 | 6 | 5 | 1 | 8 | 2 | 9 | 7 | c=0 |
0 | 3 | c=1 | ||||||||
5 | 6 | c=2 | ||||||||
1 | 6 | c=3 | ||||||||
2 | 8 | c=4 | ||||||||
7 | 9 | c=5 |
Ответ: 5
Одномерный целочисленный массив. В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 1, 2, 5, 8, 9, 3, 4, 0, 7, 6 соответственно, т.е. A[0] = 1, A[1] = 2 и т.д. Определите значение переменной j после выполнения следующего фрагмента программы (записанного ниже на пяти зыках программирования).
Бейсик
j = 5 WHILE A(j) < A(j-1) t = A(j) A(j) = A(j-1) A(j-1) = t j = j - 1 WEND
Python
j = 5 while A[j] < A[j-1]: A[j],A[j-1]=A[j-1],A[j] j -= 1
Алгоритмический язык
j := 5 нц пока A[j] < A[j-1] t := A[j] A[j] := A[j-1] A[j-1] := t j := j - 1 кц
Паскаль
j:= 5; while A[j] < A[j-1] do begin t := A[j]; A[j] := A[j-1]; A[j-1] := t; j := j - 1; end;
Си
j = 5; while (A[j] < A[j-1]) { t = A[j]; A[j] = A[j-1]; A[j-1] = t; j -= 1; }
Демонстрационный вариант ЕГЭ 2017 г. – задание №19
Решение:
Данный алгоритм меняет местами элементы с номером j и j-1 до тех пор, пока элемент A[j] не станет больше либо равен элементу A[j-1], при каждой такой перестановке j уменьшается на единицу.
A[0]=1 A[3]=8 A[6]=4 A[9]=6
A[1]=2 A[4]=9 A[7]=0
A[2]=5 A[5]=3 A[8]=7
Сначала тройка (j=5, A[ j ]=A[5]=3) сравнивается с девяткой (A[ j-1 ]=A[4]=9), поскольку тройка меньше девятки они меняются местами (A[5]=9, A[4]=3), j=4. Аналогично тройка (j=4, A[ j ]=A[4]=3) меняется местами с восьмёркой (A[3]=8), j=3 и пятёркой (A[2]=5), j=2. Затем тройка сравнивается с двойкой, поскольку тройка больше двух алгоритм завершает работу. Всего было 3 захода в цикл, следовательно, после исполнения данного фрагмента программы j станет равным двум.
1 | 2 | 5 | 8 | 9 | 3 | 4 | 0 | 7 | 6 | j = 5 | 3 < 9 |
3 | 9 | j = 4 | 3 < 8 | ||||||||
3 | 8 | j = 3 | 3 < 5 | ||||||||
3 | 5 | j = 2 | 3 < 2 |
Ответ: 2
Демонстрационный вариант ЕГЭ 2016 г. – задание №19
В программе используется одномерный целочисленный массив 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 IF A(i) < A(0) THEN c = c + 1 t = A(i) A(i) = A(0) A(0) = t ENDIF NEXT i
Python
c = 0 for i in range(1,10): if A[i] < A[0]: c = c + 1 t = A[i] A[i] = A[0] A[0] = t
Алгоритмический язык
c := 0 нц для i от 1 до 9 если A[i] < A[0] то c := c + 1 t := A[i] A[i] := A[0] A[0] := t все кц
Паскаль
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;
Си
c = 0; for (i = 1;i < 10;i++) if (A[i] < A[0]) { c++; t = A[i]; A[i] = A[0]; A[0] = t; }
Ответ:
Решение:
Данный алгоритм меняет местами элементы A[0] и А[ i ] и увеличивает значение c на 1, если А[ i ]< A[0].
A[0]=4 A[3]= 8 A[6]=1 A[9]=6
A[1]=7 A[4]= 5 A[7]=2
A[2]=3 A[5]=0 A[8]=9
Сначала четверка (A[0]=4 ) сравнивается с семеркой ( i=1,А[ i ]= A[1]=7),
7!<4
Дальше четверка (A[0]=4 ) сравнивается с тройкой ( i=2,А[ i ]= A[2]=3),поскольку тройка меньше четверки они меняются местами (A[0]=3, A[2]=4), c=0+1=1.
Аналогично тройка сравнивается с A[3]= 8, A[4]= 5, A[5]=0 .
8!<3
5!<3
0<3 → 3 и 0 меняются местами (A[0]=0, A[5]=3), c=.1+1=2.
0-наименьшее число в массиве, c=2.
Ответ: 2
В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:
Паскаль | Си | Python |
for i:=0 to 10 do A[i]:= i + 1; for i:=10 downto 0 do A[i]:= A[10-i]; |
for (i = 0;i <= 10;i++) A[i] = i+1; for (i = 10;i >= 0;i—) A[i] = A[10-i]; |
for i in range(0,11): A[i] = i+1 for i in range(10, -1, -1): A[i] = A[10-i] |
Чему будут равны элементы этого массива?
1) 10 9 8 7 6 5 4 3 2 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) 1 2 3 4 5 6 5 4 3 2 1
Решение:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 3 | 2 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 4 | 3 | 2 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 5 | 4 | 3 | 2 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 5 | 4 | 3 | 2 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 5 | 4 | 3 | 2 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 5 | 4 | 3 | 2 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 5 | 4 | 3 | 2 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 5 | 4 | 3 | 2 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 5 | 4 | 3 | 2 | 1 |
Ответ: 4
В программе описан одномерный целочисленный массив с индексами от 0 до 10. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:
Паскаль | Си | Python |
for i:=0 to 10 do A[i]:=i; for i:=0 to 10 do begin A[10-i]:=A[i]; A[i]:=A[10-i]; end; |
for (i = 0;i <= 10;i++) A[i] = i; for (i = 0;i <= 10;i++){ A[10-i]=A[i]; A[i]=A[10-i]; } |
for i in range(0,11): A[i] = i for i in range(0,11): A[10-i]=A[i] A[i]=A[10-i] |
Чему будут равны элементы этого массива?
1) 10 9 8 7 6 5 4 3 2 1 0
2) 0 1 2 3 4 5 6 7 8 9 10
3) 10 9 8 7 6 5 6 7 8 9 10
4) 0 1 2 3 4 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 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 1 | 0 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 2 | 1 | 0 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 3 | 2 | 1 | 0 |
0 | 1 | 2 | 3 | 4 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 1 | 2 | 3 | 4 | 5 | 4 | 3 | 2 | 1 | 0 |
Ответ: 4
В программе описан одномерный целочисленный массив с индексами от 0 до 10 и целочисленные переменные k, i. В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:
Паскаль | Си | Python |
for i:=0 to 10 do A[i]:=i*i; k:=A[10]; for i:=0 to 9 do A[i]:=A[i+1]; A[0]:=k; |
for (i = 0;i <= 10;i++) A[i]=i*i; k:=A[10]; for (i = 0;i <= 9;i++){ A[i]=A[i+1]; A[0]=k; } |
for i in range(0,11): A[i]=i*i k=A[10] for i in range(0,10): A[i]=A[i+1] A[0]=k |
Чему будут равны элементы этого массива?
1) 100 0 1 4 9 16 25 36 49 64 81
2) 100 4 9 16 25 36 49 64 81 100 100
3) 1 4 9 16 25 36 49 64 81 100 100
4) 1 4 9 16 36 49 64 81 100 0
Решение:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
0 | 1 | 4 | 9 | 16 | 25 | 36 | 49 | 64 | 81 | 100 | k=100 |
1 | |||||||||||
4 | |||||||||||
9 | |||||||||||
16 | |||||||||||
25 | |||||||||||
36 | |||||||||||
49 | |||||||||||
64 | |||||||||||
81 | |||||||||||
1 | 4 | 9 | 16 | 25 | 36 | 49 | 64 | 81 | 100 | 100 | |
100 | 4 | 9 | 16 | 25 | 36 | 49 | 64 | 81 | 100 | 100 | A[0]=100 |
Ответ: 2
Значения двух массивов A и B с индексами от 1 до 100 задаются при помощи следующего фрагмента программы:
Паскаль | Си | Python |
for i:=1 to n do A[i]:=i*i; for i:=1 to n do B[i]:=A[i]-100; |
for (i = 1;i <= n;i++) A[i]=i*i; for (i = 1;i <= n;i++){ B[i]=A[i]-100; } |
for i in range(0,n+1): A[i]=i*i for i in range(0,n+1): B[i]=A[i]-100 |
Сколько положительных значений будет в массиве B?
Решение:
A | 1 | 2 | 3 | … | 10 | 11 | 12 | … | 100 | |||
A | 1 | 4 | 9 | 100 | 121 | 144 | … | 10000 | ||||
B | -99 | -96 | -91 | 0 | 21 | 44 | … | 9900 | B[i]:=A[i]-100; |
100-10=90
Ответ: 90
Значения элементов двумерного массива А были равны 0. Затем значения некоторых элементов были изменены (см. представленный фрагмент программы:
Паскаль | Си | Python |
n := 0; for i:=1 tо 5 do for j:=1 tо 6-i do begin n := n + 1; A[i,j] := n; end; |
n = 0; for (i = 1;i <= 5;i++) for (j = 1;j <= 6-i;j++){ n = n + 1; A[i][j] = n; } |
n = 0 for i in range(1,6): for j in range(1,6-i+1): n = n + 1 A[i][j] = n |
Какой элемент массива будет иметь в результате максимальное значение?
1) A[1,1] 2) A[1,5] 3) A[5,1] 4) A[5,5]
Решение:
A[1,1]=1 A[1,2]=2 A[1,3]=3 A[1,4]=4 A[1,5]=5 |
A[2,1]=6 A[2,2]=7 A[2,3]=8 A[2,4]=9 |
A[3,1]=10 A[3,2]=11 A[3,3]=12 |
A[4,1]=13 A[4,2]=14 |
A[5,1]=15 |
Ответ: 3
В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:
Паскаль | Си | Python |
s:= 0; n:= 10; for i:=0 to n do begin if і = n-i then s:=s+A[i]+A[i+1]; end; |
s = 0; n = 10; for (i = 0;i <= n;i++) if (і == n-i) s=s+A[i]+A[i+1]; |
s = 0 n = 10 for i in range(0,n+1): if і == n-i: s=s+A[i]+A[i+1]; |
В начале выполнения этого фрагмента в массиве находились числа 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, т. е. А[0]=0, А[1]=10 и т. д. Чему будет равно значение переменной s после выполнения данной программы?
Решение:
n:= 10;
if і = n-i then => і = 10-i = > i=5
s:=s+A[i]+A[i+1] = 0 + 50 + 60 = 110
Ответ: 110
В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:
Паскаль | Си | Python |
n:= 10; s:= 0; for i:=1 to n do begin if A[i]-A[i-1] < i then s:= s + i; end; |
n = 10; s = 0; for (i = 1;i <= n;i++) if (A[i]-A[i-1] < i) s = s + i; |
n = 10 s = 0 for i in range(0,n+1): if A[i]-A[i-1] < i: s = s + i |
В начале выполнения этого фрагмента в массиве находились числа Фибоначчи: 1,1,2,3,5,8,13,21,34,55,89, т.е. A[0]=1, A[1]=1, A[2]=2 и т.д. Чему будет равно значение переменной s после выполнения данной программы?
Решение:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 | |
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
A[i]-A[i-1] < i | 1-1<1 | 2-1<2 | 3-2<3 | 5-3<4 | 8-5<5 | 13-8<6 | |||||
s | 0 | 1 | 3 | 6 | 10 | 15 | 21 |
Ответ: 21
В программе описан одномерный целочисленный массив с индексами от 1 до 10. Ниже представлен фрагмент программы, обрабатывающей данный массив:
Паскаль | Си | Python |
n := 10; for i := 1 to n do begin A[n+1-i] := 2*A[i]; end; |
n = 10 for (i = 1;i <= n;i++) A[n+1-i] = 2*A[i]; |
n = 10 for i in range(0,n+1): A[n+1-i] = 2*A[i] |
В начале выполнения этого фрагмента в массиве находились числа: 1,2,4,8,16,32,64,128,256,512, т.е. A[i]=2k-1, k=1, …10. Укажите значение из предложенного списка, которое после выполнения указанного фрагмента программы имеют два или более рассмотренных в этом фрагменте элемента массива. Если таких чисел несколько, укажите наименьшее из них.
Решение:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | A[n+1-i] := 2*A[i] |
2 | A[10+1-1] := 2*1=A[10]=2 | |||||||||
4 | A[10+1-2] := 2*2=A[9]=4 | |||||||||
8 | A[10+1-3] := 2*4=A[8]=8 | |||||||||
16 | A[10+1-4] := 2*8=A[7]=16 | |||||||||
32 | A[10+1-5] := 2*16=A[6]=32 | |||||||||
64 | A[10+1-6] := 2*32=A[5]=64 | |||||||||
32 | A[10+1-7] := 2*16=A[4]=32 | |||||||||
16 | A[10+1-8] := 2*8=A[3]=16 | |||||||||
8 | A[10+1-9] := 2*4=A[2]=8 | |||||||||
4 | 8 | 16 | 32 | 64 | 32 | 16 | 8 | 4 | 2 | A[10+1-10] := 2*2=A[1]=4 |
Если таких чисел несколько, укажите наименьшее из них = 4
Ответ: 4
В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы, обрабатывающей данный массив:
Паскаль | Си | Python |
s:=0; n:=10; for i:=0 to n-1 do begin s:=s+A[i]-A[i+1] end; |
s=0; n=10; for (i = 0;i <= n-1;i++) s=s+A[i]-A[i+1]; |
s=0 n=10 for i in range(0,n): s=s+A[i]-A[i+1] |
В начале выполнения этого фрагмента в массиве находились двухзначные натуральные числа. Какое наибольшее значение может иметь переменная s после выполнения данной программы?
Решение:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
99 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | s:=s+A[i]-A[i+1] |
s=0+99-10=89
s=89+10-10=89…
Ответ: 89
В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 7; 5; 3; 4; 8; 8; 9; 7; 6; 2 соответственно, т.е. A[0] = 7; A[1] = 5 и т.д. Определите значение переменной c после выполнения следующего фрагмента программы:
Паскаль | Си | Python |
c := 0; for i := 1 to 9 do if A[i-1] < A[i] then begin t:= A[i]; A[i]:= A[i — 1]; A[i-1]:= t end else c:= c + 1; |
c = 0; for (i = 1;i <= 9;i++) if (A[i-1] < A[i]){ t = A[i]; A[i] = A[i — 1]; A[i-1] = t; }else c = c + 1; |
c = 0 for i in range(1,10): if A[i-1] < A[i]: t = A[i] A[i] = A[i — 1] A[i-1] = t else: c = c + 1 |
Решение:
if A[i-1] < A[i] then begin
t:= A[i];
A[i]:= A[i — 1];
A[i-1]:= t
Если текущее число больше предыдущего, это меняет местами. Если нет, c увеличивается.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
7 | 5 | 3 | 4 | 8 | 8 | 9 | 7 | 6 | 2 | |
7 | 5 | c=1 | ||||||||
5 | 3 | c=2 | ||||||||
4 | 3 | |||||||||
8 | 3 | |||||||||
8 | 3 | |||||||||
9 | 3 | |||||||||
7 | 3 | |||||||||
6 | 3 | |||||||||
3 | 2 | c=3 |
Ответ: 3
Ниже представлен фрагмент программы, обрабатывающей одномерный целочисленный массив с индексами от 0 до 10. Известно, что в начале выполнения этого фрагмента в массиве находилась возрастающая последовательность чисел, то есть A[0] < A[1] < … < A[10]. Какое наибольшее значение может иметь переменная s после выполнения данной программы?
Паскаль | Си | Python |
s := 27; n := 10; for i:=0 to n-1 do begin s:=s+A[i]-A[i+1]+2 end; |
s = 27; n = 10; for (i = 0;i <= n-1;i++) s=s+A[i]-A[i+1]+2; |
s = 27 n = 10 for i in range(0,n): s=s+A[i]-A[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 |
s:=s+A[i]-A[i+1]+2
чтобы сделать с самым большим, то разница должна быть минимальной.
s=27+0-1+2=28
Это повторяется 10 раз.
27+10=37
Ответ: 37