1. Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы. Сколько элементов массива B будут иметь положительные значения? for n:=1 to 100 do A[n]:=n-10; for n:=1 to 100 do B[n]:=A[n]*n; 10 50 90 100
Cлайд 3
2. Значения двух массивов A[1..300] и B[1..300] задаются с помощью следующего фрагмента программы. Сколько элементов массива B будут иметь отрицательные значения? for n:=1 to 300 do A[n]:=100-n; for n:=1 to 300 do B[n]:=2*A[n]+1; 200 199 151 150
Cлайд 4
3. Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы. Какой элемент массива B будет наибольшим? for n:=1 to 100 do A[n]:= (n-80)*(n-80); for n:=1 to 100 do B[101-n]:=A[n]; B[10] B[30] B[70] B[90]
Cлайд 5
for n:=1 to 15 do A[n]:=sqr(n); for n:=1 to 15 do begin if n mod 20 then А[n] := sqrt(A[n]) else A[n] := A[1]; end; 4. Значения элементов массива A[1..15] задаются с помощью следующего фрагмента программы. Какие значения будут присвоены элементам A[5], A[8]? Ответ: A[5]=5 B[8]=1
Cлайд 6
5. Чему равно значение В(2,4)? For n:=1 to 5 do For k:=1 to 5 do B[n,k]:=n+k; 6. Чему равно значение В(19,21)? For n:=1 to 500 do For k:=1 to 500 do B[n,k]:=(n+1)*k/2; Ответ: 6 Ответ: 210
Cлайд 7
for i:=1 to 4 do begin for j:=1 to 4 do begin if j > 5 div 2 then A[i, j] := i else A[i, j] := j - i; end; 7. Значения элементов массива A[1..4, 1..4] задаются с помощью фрагмента программы. Какова сумма отрицательных элементов массива? Ответ: -9 1 2 3 4 1 2 3 4 0 1 1 1 -1 0 2 2 -2 -1 3 3 -3 -2 4 4
Cлайд 8
9. Все элементы массива А размером 4х4 элемента первоначально были равны 0. Затем элементы массива меняются с помощью следующего фрагмента программы. Сколько элементов будут равны 1? For n:=1 to 4 do For k:=N to 4 do begin А[n,k]:=1; End; Ответ: 10
Cлайд 9
10. Дана квадратная матрица. Что будет являться результатом работы следующего фрагмента программы? k:=1 FOR i:=1 TO n DO BEGIN c := A[i, i]; A[i, i] := A[k, i]; A[k, i] := c; END Произойдет обмен элементов главной диагонали и элементов первой строки.
Cлайд 10
11. Начальные значения элементов массива A[1..5, 1..4] равны нулю. С помощью следующего фрагмента программы элементы массива изменяются. Сколько элементов будут равны нулю? for i:=1 to 5 do begin for j:=1 to 4 do begin if i mod 2 = 0 then A[ i, j ]:= A[ i, j ]+ A[ j, i ] else A[ i, j ]:= A[ i, j ] - j; end; end; Ответ: 5 1 2 3 4 1 2 3 4 5 -1 -2 -3 -4 -2 0 0 0 -1 -2 -3 -4 -4 0 -4 0 -1 -2 -3 -4
Cлайд 11
For n:=1 to 4 do for k:=n to 4 do begin a[ n, k ]:= a[ n, k ]+1; a[ k, n ]:= a[ k, n ]+1; end; 12. Начальные значения элементов массива A[1..10, 1..10] равны нулю. Сколько элементов будут равны единице после выполнения программы? Ответ: 12 2 1 1 1 0.. 1 2 1 1 0.. 1 1 2 1 0.. 1 1 1 2 0.. 0.. 0.. 0.. 0.. 0..
Cлайд 12
13. Начальные значения элементов массива A[1..10, 1..10] равны 1. Сколько элементов будут равны 0 после выполнения программы? For n:=1 to 4 do For k:=1 to n+1 do begin a[ n, k ]:= a[ n, k ]-1; a[ n, k+1 ]:= a[ n, k ]-1; end; Ответ: 4
Cлайд 13
1. Опишите на русском языке или одном из языков программирования алгоритм поиска номера первого из двух последовательных элементов в целочисленном массиве из 30 элементов, сумма которых максимальна. Если таких пар несколько, то можно выбрать любую из них. Решение
Cлайд 14
Program c1; const N=30; var A: array[1..N] of integer; i, nom1, S: integer; begin For i:=1 to N do readln(A[i]); nom1 := 1; {номер первого элемента} S := A[1] + A[2]; {максимальная сумма} For i:=2 to N-1 do if A[i]+ A[i+1] > S then begin nom1 := i; S := A[i] + A[i+1]; end; writeln(nom1); Readln; end.
Cлайд 15
2. Опишите на русском языке или на одном из языков программирования алгоритм поиска второго по величине (т.е. следующего по величине за максимальным) элемента в числовом массиве из 30 различных элементов. Решение
Cлайд 16
Program c2; const N=30; var a: array [1..N] of integer; i, k, max, max2: integer; begin for i:=1 to N do readln(a[i]); if a[1] > a[2] then begin max:=a[1]; max2:=a[2]; end else begin max:=a[2]; max2:=a[1]; end; for i:=3 to N do if a[i] > max then begin max2 := max; max := a[i]; end else if a[i] > max2 then max2 := a[i]; writeln(max2); readln; end.
Cлайд 17
3. Опишите алгоритм поиска трех последовательных элементов, сумма которых максимальна, в числовом массиве из 30 элементов. Решение запишите в словесной форме или на алгоритмических языках Бейсик или Паскаль. Решение
Cлайд 18
Program c3; var a:array[1..30] of integer; Max, S, i, k: integer; Begin for i:=1 to 30 do readln(A[i]); S:=a[1]+a[2]+a[3]; {текущая сумма} Max:=S; {максимальная сумма} k:=1; {номер первого элемента тройки} for i:=2 to 28 do begin S:=a[i]+a[i+1]+a[i+2]; if S > Max then begin Max:=S; k:=i; end; end; for i:=k to k+2 do writeln('A[', I , ']=', a[i]); readln; end.
Cлайд 19
4. Опишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества подряд идущих совпадающих элементов в целочисленном массиве длины 30. Решение
Cлайд 20
Program c4; var a: array[1..30] of integer; i, k, kMax: integer; begin for i:=1 to 30 do readln(A[i]); k := 1; {число элементов в цепочке} kMax := 1; {максимум в цепочке} for i:=2 to 30 do begin if A[i] = A[i-1] then k := k + 1 else {цепочка закончилась } begin if k > kMax then kMax := k; k := 1; end; end; if k > kMax then kMax := k; { если цепочка стоит в конце} writeln(kMax); readln; end.
Cлайд 21
5. Дан целочисленный массив из 50 элементов. Элементы массива могут принимать целые значения от 0 до 100 – баллы учащихся за итоговый тест по информатике. Для получения положительной оценки за тест требовалось набрать не менее 20 баллов. Опишите на русском языке или на одном из языков программирования алгоритм, который выводит минимальный балл среди учащихся, получивших за тест положительную оценку. Известно, что в классе есть хотя бы один такой учащийся. Решение
Cлайд 22
Program c5; var a: array[1..50] of integer; i, min: integer; begin for i:=1 to 50 do begin write(‘Введите число из [0, 100]’); repeat {не пропускаем другие числа} readln(A[i]); until (A[i]>=0) and (A[i]= 20) and (a[i] < min) then min := a[i]; writeln ( min ); Readln; end.
Cлайд 23
6. Дан прямоугольный массив целых положительных чисел 10 х 20. Опишите на русском языке или на одном из языков программирования алгоритм поиска строки с наименьшей суммой элементов. Вывести на печать номер строки и сумму ее элементов. Предполагается, что такая строка единственна. Решение
Cлайд 24
Program c6; const N=10; M=20; var a:array[1..N,1..M] of integer; Min, Sum, nMin, i, k: integer; Begin {заполнение матрицы N на M…..} Sum := 0; for k:=1 to M do Sum := Sum + a[1,k]; Min := Sum; {минимальная сумма в строке} nMin := 1; {номер строки с минимальной суммой} for i:=2 to N do begin Sum := 0; for k:=1 to M do Sum := Sum + a[i,k]; if Sum < Min then begin Min := Sum; nMin := i; end; end; write(‘Номер строки: ', nMin); writeln(‘, ее сумма= ', Min ); Readln; end.
Cлайд 25
7. Дан целочисленный прямоугольный массив 6x10. Опишите на русском языке или на одном из языков программирования алгоритм вычисления суммы минимальных элементов из каждой строки. Напечатать значение этой суммы. Предполагается, что в каждой строке минимальный элемент единственный. Решение
Cлайд 26
Program c7; const N=6, M=10; var A: array[1..N,1..M] of integer; Min, Sum, i, k: integer; Begin {заполнение матрицы N на M …..} Sum := 0; for i:=1 to N do begin Min := A[i,1]; {поиск минимума в i-ой строке} for k:=2 to M do if A[i,k] < Min then Min := A[i,k]; Sum := Sum + Min; end; writeln(Sum); readln; end.
Cлайд 27
8. Дан целочисленный массив из 20 элементов. Элементы массива могут принимать любые целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит номер элемента массива, наименее отличающегося от среднего арифметического всех его элементов. Решение
Cлайд 28
Program c8; const N=20; var a: array [1..N] of integer; i, k: integer; s, Rmin: real; begin For i:=1 to N do readln(a[i]); s:=0; For i:=1 to N do s:=s+a[i]; s:=s/N; {среднее арифметическое} k:=1; {номер искомого элемента} Rmin:= abs(a[1]-s); {минимальная разность} For i:=2 to N do if abs(a[i]-s) < Rmin then begin Rmin:= abs(a[i]-s); k:=i; end; writeln(k); end.
Cлайд 29
Источники заданий: Н. Н. Самылкина, Е.М. Островская. ЕГЭ 2010. Информатика: тренировочные задания. — М.: Эксмо, 2009. С.С. Крылов, Д.М. Ушаков. Отличник ЕГЭ. Информатика. Решение сложных задач. /ФИПИ — М.: Интеллект-центр, 2010. П.А. Якушкин, Д.М. Ушаков. Самое полное издание типовых вариантов реальных заданий ЕГЭ 2010. Информатика. — М.: Астрель, 2009. О.В. Ярцева, Е.Н. Цикина. ЕГЭ-2009. Информатика. Самые новые задания. – М.: АСТ: Астрель, 2009. http:/kpolyakov.narod.ru Евграфова Ольга Владимировна, учитель информатики МОУ гимназии №8 г.о. Коломна Московской области