Слайд 1Подготовка к ЕГЭ по информатике
Решение задач на алгоритмическом языке КУМИР
Условия
задач и пояснения к решению взяты
с сайта решу егэ
inf.reshuege.ru/
Задача 3355
В программе описан одномерный
целочисленный массив с индексами от 0 до 10 и целочисленные переменные k, i.
В приведенном ниже фрагменте программы массив сначала заполняется, а потом изменяется:
for i : = 0 to 10 do A[i] : = i;
for i : = 0 to 4 do begin
k : = A[i];
A[i] : = A[10-i];
A[10-i] : = k;
end;
Чему будут равны элементы этого массива?
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) 0 1 2 3 4 5 4 3 2 1 0
4) 10 9 8 7 6 5 6 7 8 9 10
Слайд 3Пояснение с сайта решу ЕГЭ
Пояснение.
Первый цикл, заполняем массив:
i=0: a[0]=0,
i=1: a[1]=1,
i=2: a[2]=2,
...
i=10: a[10]=10.
Второй цикл, меняет
местами значения первых пяти элементов с последующими:
i=0: a[0]=a[10]=10,
i=1: a[1]=a[9] = 9,
...
i=4: a[4]=a[6] = 6,
причём a[10]=a[0]=0,
a[9]=a[1]=1,
...
a[6]=a[4]=4.
Поэтому в результате выполнени программы элементы массива будут равны: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0.
Слайд 4Решение
Алг зад 3355
нач цел i, k, цел таб A[0:10]
. вывод
"дан массив"
. нц для i от 0 до 10
.
. A[i]:=i
. . вывод A[i]," ",нс
. кц
. нц для i от 0 до 4
. . k:=A[i]
. . A[i]:=A[10-i]
. . A[10-i]:=k
. кц
. вывод "новый массив"
. нц для i от 0 до 10
. . вывод A[i]," "
. кц
кон
Ответ: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0.
Задача 3371
В программе описан одномерный целочисленный массив A с индексами
от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.
for i:=0 to 10 do
A[i]:=i-1;
for i:=10 downto 1 do
A[i-1]:=A[i];
Чему будут равны элементы этого массива?
1) 9 9 9 9 9 9 9 9 9 9 9
2) 0 1 2 3 4 5 6 7 8 9 9
3) 0 1 2 3 4 5 6 7 8 9 10
4) -1 -1 0 1 2 3 4 5 6 7 8
Слайд 6Пояснение с сайта решу ЕГЭ
Итак, пойдем по программе:
От 0
до 10 выполняем
A[i]:=i - 1, т. е. по порядку
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
От 10 до 1 выполняем
A[i-1]:=A[i], т. е. справа налево каждый элемент массива будет принимать значение справа стоящей ячейки, так что
A[9]:=A[10]=9, a A[8]:=A[9]=A[10]=9 и т. д., так что все значения ячейки будут равны 9.
Слайд 7РЕШЕНИЕ
алг зад 3371
нач цел i, n, m, цел таб A[0:10]
.
нц для i от 0 до 10
. . A[i]:=i-1
. .
вывод A[i], " ",нс
. кц
. нц для i от 10 до 1 шаг -1
. . A[i-1]:=A[i]
. кц
. нц для i от 0 до 10
. . вывод A[i]
. кц
кон
ОТВЕТ: 1
Задача 3383
В программе обрабатывается двумерный целочисленный массив A [0..n,0..n]. Первый
индекс элемента обозначает номер строки, а второй – номер столбца. Дан фрагмент программы:
for i:=0 to n do begin
c:=A[i,n-i];
A[i,n-i]:=A[1,i];
A[1,i]:=c;
end;
Что меняет этот фрагмент программы?
1) два столбца в таблице
2) строку и столбец в таблице
3) элементы диагонали и строки в таблице
4) элементы диагонали и столбца в таблице
Слайд 9Пояснение с сайта решу ЕГЭ
Этот фрагмент меняет местами элементы A[i,n-i]
и A[1,i]. Разберёмся, что это за элементы.
При i=0 A[i,n-i]
= A[0,n] — элемент нулевй строки и последнего столбца.
При i=1 A[i,n-i] = A[1,n-1] — элемент первой строки и предпоследнего столбца.
Каждый следующий элемент будет сдвигаться на строку вниз и на столбец влево, т. е. мы получим элементы диагонали массива.
Элемент A[1,i] — элемент первой строки и столбца с номером i.
Значит, данный фрагмент программы меняет элементы диагонали и первой строки в таблице.
Слайд 10Решение
алг зад 3383
нач цел i,j,k,n,c, цел таб A[0:10,0:10]
. n:=5
.
нц для i от 0 до n
. . нц для
j от 0 до n
. . . ввод A[i,j]
. . кц
. кц
. нц для i от 0 до n
. . нц для j от 0 до n
. . . c:=A[i, n-i]
. . . A[i, n-i]:=A[1,i]
. . . A[1,i]:=c
. . . вывод A[i,j]
. . кц
. кц
кон
ОТВЕТ: 3
Задача 3391
Значения элементов двухмерного массива A[1..100,1..100] задаются с помощью
следующего фрагмента программы:
for i : = 1 to 100 do
for k : = 1 to 100 do
if i > k then
A[i,k] : = 1
else A[i,k] : = -1;
Чему равна сумма элементов массива после выполнения этого фрагмента программы?
1) 0
2) 100
3) -100
4) -200
Слайд 12Пояснение с сайта решу ЕГЭ
Условие говорит нам, что если номер
строки больше номера столбца, то соответствующий элемент равен 1. В
первой строке таких элементов нет. Во второй строке это будет только элемент A[2,1], третьей их будет два: A[3,1] и A[3,2] и т. д. В строке с номером 100 таких элементов будет 99.
По формуле для суммы арифметической прогрессии найдём количество таких элементов:
a1 = 1, an = 99, n = 99, поэтому N = (1 + 99) / 2 * 99 = 4950.
Всего в таблице 100 * 100 = 10 000 элементов. Элементов, равных -1, будет 10 000 - 4950 = 5050.
Найдём сумму элементов: 4950 * 1 + 5050 * (-1) = -100.
Слайд 13Решение
алг зад 3391
нач цел i,j,k,n,c,сум, цел таб A[0:100,0:100]
. сум:=0
.
нц для i от 1 до 100
. . нц для
k от 1 до 100
. . . если i>k
. . . . то A[i, k]:=1
. . . . иначе A[i, k]:=-1
. . . все
. . . сум:=сум+A[i,k]
. . кц
. кц
. вывод сум
кон
ОТВЕТ: 3
Задача 3393
Значения элементов двухмерного массива A[1..10,1..10] сначала равны 0.
Затем выполняется следующий фрагмент программы:
for i : = 1 to 4 do
for j : = 2 to 5 do begin
A[i,j] : = A[i,j]+4;
A[j,i] : = A[j,i]+5;
end;
Сколько элементов массива будут равны 9?
1) 20
2) 16
3) 9
4) 4
Слайд 15Пояснение с сайта решу ЕГЭ
Мы имеем матрицу размером 10x10. Операция
A[i,j] : = A[i,j]+4 при заданных i и j увеличивает
на 4 элементы первых четырёх строк и столбцов со второго по пятый.
Операция A[j,i] : = A[j,i]+5 при заданных i и j увеличивает на 5 элементы строк со второй по пятую и первых четырёх столбцов.
Нарисуем изменяющийся фрагмент числовой таблицы:
Слайд 16Видим, что операции пересеклись на 9-ти элементах, т. е. 9
элементов будут равны 9.
Слайд 17РеШЕНИЕ
алг зад 3393
нач цел i,j,k, цел таб A[1:10,1:10]
. k:=0
.
нц для i от 1 до 10
. . нц для
j от 1 до 10
. . . A[i,j]:=0
. . кц
. кц
. нц для i от 1 до 4
. . нц для j от 2 до 5
. . . A[i,j]:=A[i,j]+4
. . . вывод A[i,j]
. . . A[j,i]:=A[j,i]+5
. . . вывод A[j,i]
. . кц
. кц
. нц для i от 1 до 10
. . нц для j от 1 до 10
. . . если A[j,i]=9
. . . . то k:=k+1
. . . все
. . кц
. кц
. вывод "вывод к=", k
кон
ОТВЕТ: по номером 3 (9)