Слайд 1Задания ЕГЭ. Часть 5
Задания 20. Анализ программы с циклами и условными
операторами
Задания 21. Анализ программ с циклами и подпрограммами
Задания 22. Оператор присваивания и ветвления. Перебор вариантов, построение дерева
Задания 23. Логические уравнения
Задания 24 (С1). Поиск и исправление ошибок в программеЗадания
25 (С2). Алгоритмы обработки массивов
Слайд 220-3
Получив на вход число x, этот алгоритм печатает два числа a
и b.
Укажите наименьшее из таких чисел x, при вводе которого алгоритм печатает сначала 2, а потом 13.
Слайд 320-3 решение
Рассмотрим цикл, число шагов которого зависит от изменения переменной x:
while
x > 0 do begin
...
x:= x div 100;
end;
Т. к. оператор div возвращает целую часть от деления, то при делении на 100 это равносильно отсечению последних двух цифр.
На каждом шаге от десятичной записи x отсекается две последних цифры до тех пор, пока все цифры не будут отсечены, то есть x не станет равно 0. Для того, чтобы a стало равным 2, x должно быть трёхзначным или четырёхзначным.
Теперь рассмотрим изменение b:
while x>0 do begin
b:=b+(x mod 100);
end;
Оператор mod возвращает остаток от деления, при делении на 100 это последние две цифры x. Разобьём 13 на два слагаемых так, чтобы можно было составить трёхзначное число: 13 = 1 +12. Искомое число — 112.
Слайд 420-4
Получив на вход число x, этот алгоритм печатает число M. Известно, что x > 100.
Укажите наименьшее такое (т.е. большее 100) число x, при вводе которого алгоритм печатает 26.
Слайд 520-4 Решение
В теле цикла числа M и L уменьшаются, пока не
станут равными. Чтобы в итоге было напечатано 26, оба числа в какой-то момент должны быть равны 26.
Пойдем от конца к началу: на предыдущем шаге одно число было 26, а другое 26 + 26 = 52. Еще на шаг раньше 52 + 26 = 78 и 52. До того 78 + 52 = 130 и 52. То есть наименьшее возможное число 130. А поскольку найденное число четное, то M будет присвоено значение 52, что и приведет к необходимому результату.
Ответ: 130.
Слайд 621-1
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
Var a,b,t,M,R
:integer;
Function F(x:integer):integer;
begin
F:=(x+5)*(x+3);
end;
BEGIN
a:= -5; b:=5;
M:=a; R:=F(a);
for t:=a to b do begin
if (F(t)> R)then begin
M:=t;
R:=F(t);
end;
end;
write(R);
END.
Слайд 721-1 решение
1. Алгоритм предназначен для поиска наибольшего значения функции F(t) на
отрезке от a до b.
2. F(x)=(x+5)(x+3) Квадратный трехчлен F(t) положительным старшим коэффициентом пересекает ось абсцисс в точках -5 и -3 и, следовательно, возрастает на луче (-4; ∞). Поэтому наибольшее значение функции достигается в точке 5 и равно F(5)=80.
Слайд 821-2
Напишите в ответе число различных значений входной переменной k, при которых
программа выдаёт тот же ответ, что и при входном значении k = 55.
Значение k = 55 также включается в подсчёт различных значений k.
Слайд 921-2 решение
Программа выводит минимальное , которое удовлетворяет неравенству
Найдём все подходящие k. Это
те k, для которых выполнены оба неравенства
Таким образом получаем.
Этот промежуток содержит 27 целых значений.
Слайд 1021-3
Напишите в ответе число различных значений входной переменной k, при которых
программа выдаёт тот же ответ, что и при входном значении
k = 55.
Значение k = 55 также включается в подсчёт различных значений k.
Слайд 1121-3 решение
Программа находит минимальное i такое, что выполняется неравенство
При .
Найдём все подходящие k . Это те k, для которых выполнены оба неравенства
Таким образом получаем .
Этот промежуток содержит 18 целых значений k.
Слайд 1221-4
При каком наименьшем значении входной переменной k программа выдаёт тот же ответ, что
и при входном значении k = 64?.
Слайд 1321-4 решение
Программа выводит максимальное I не больше 12, которое удовлетворяет неравенству .
Для для
Таким образом
минимальное k — 62.
Слайд 1421-5
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
Var a,b,t,M,R
:integer;
Function F(x:integer):integer;
begin
F:=4*(x-5)*(x+3);
end;
BEGIN
a:=-20; b:=20;
M:=a; R:=F(a);
for t:=a to b do begin
if (F(t)< R)then begin
M:=t;
R:=F(t);
end;
end;
write(R);
END.
Слайд 1521-5 решение
1. Алгоритм предназначен для поиска наименьшего значения функции F(t) на
отрезке от a до b.
2.
Квадратный трехчлен F(t) с положительным старшим коэффициентом пересекает ось абсцисс в точках 5 и −3 и, следовательно, наименьшее значение достигается в вершине 1 и равно F(1) = −64.
Слайд 1622-1
Определите значение суммы целочисленных переменных и после выполнения фрагмента программы:
Слайд 1822-2
Определите значение переменной "с" после выполнения следующего фрагмента программы:
x:= 8 +
2*5;
y:= (x mod 10) + 14;
x:= (y div 10) + 3;
c:= x - y;
Слайд 2022-3
У исполнителя Калькулятор две команды, которым присвоены номера:
1. прибавь 2,
2. умножь
на 5.
Первая из них увеличивает число на экране на 2, вторая — увеличивает его в 5 раз.
Программа для Калькулятора — это последовательность команд.
Сколько есть программ, которые число 2 преобразуют в число 50?
Слайд 2122-3 решение
1. Если n не делится на 10, то тогда R(n)
= R(t(n)), так как существует единственный способ получения n из t(n) — прибавлением двоек.
2. Пусть n делится на 5.
Тогда R(n) = R(n / 5) + R(n - 2)= R(n / 5) + R(n - 10) (если n > 10).
При n = 10 R(n) = 2 (два способа: прибавлением четырёх двоек или однократным умножением на 5).
Поэтому достаточно постепенно вычислить значения R(n) для всех чисел, кратных десяти и не превосходящих 50: сначала вычисляем R(2), затем R(10), R(20) и т. д.
Имеем:
R(2) = 1 = R(4) = R(6) = R(8),
R(10) = 2 = R(2) + R(8),
R(20) = R(4) + R(10) =1 + 2 = 3 = R(22) = R(28),
R(30) = R(6) + R(20) =1 + 3 = 4 = R(32) = R(38),
R(40) = R(8) + R(30) =1 + 4 = 5 = R(42) = R(48),
R(50) = R(10) + R(40) = 2 + 5 = 7.
Ответ: 7.
Слайд 2222-3 решение 2
Если число на пять делится, то вариантов последней команды
два: прибавь 2 и умножь на 5, тогда
.
Заполним соответствующую таблицу по приведёным формулам слева направо:
При этом ячейки, относящиеся к числам, которые не делятся на 5, можно в решении и опустить (за исключением первого числа):
Слайд 2322-4
У исполнителя Калькулятор две команды, которым присвоены номера:
1. прибавь 2,
2. умножь
на 3.
Первая из них увеличивает число на экране на 2, вторая — увеличивает его в 3 раза.
Программа для Утроителя — это последовательность команд.
Сколько есть программ, которые число 1 преобразуют в число 25?
Ответ обоснуйте.
Слайд 2422-4 решение
Верны следующие соотношения:
1. Если n не делится на 3, то
тогда R(n) = R(t(n)), так как существует единственный способ получения n из t(n) — прибавлением двоек.
2. Пусть n делится на 3.
Тогда R(n) = R(n / 3) + R(n - 2)= R(n / 3) + R(n - 6) (если n > 6).
При n = 3 R(n)) = 2 (два способа: прибавлением двоек или однократным умножением на 3).
Поэтому достаточно постепенно вычислить значения R(n) для всех чисел, кратных 3 и не превосходящих 25: сначала вычисляем R(1), затем R(3), R(9) и т. д.
Имеем:
R(1) = 1
R(3) = 2 = R(1) + R(1),
R(9) = R(3) + R(7) = 2 + 2 = 4 = R(11) = R(13),
R(15) = R(5) + R(13) = 2 + 2 = 4 = R(17) = R(19),
R(21) = R(7) + R(19) = 2 + 6 = 8 = R(23) = R(25). Ответ: 8
Слайд 2522-5
У исполнителя Калькулятор две команды, которым присвоены номера:
1. прибавь 3,
2. умножь
на 3.
Первая из них увеличивает число на экране на 3, вторая — увеличивает его в 3 раз.
Программа для Утроителя — это последовательность команд.
Сколько есть программ, которые число 6 преобразуют в число 72?
Ответ обоснуйте.
Слайд 2622-5 решение
1. Если n не делится на 9, то тогда R(n)
= R(t(n)), так как существует единственный способ получения n из t(n) — прибавлением троек.
2. Пусть n делится на 9.
Тогда R(n) = R(n / 3) + R(n - 3)= R(n / 3) + R(n - 9) (если n > 9).
При n = 9 R(n)) = 1 (один способ: прибавлением тройки).
Поэтому достаточно постепенно вычислить значения R(n) для всех чисел, кратных 9 и не превосходящих 72: сначала вычисляем R(6), затем R(9), R(18) и т. д.
Имеем:
R(6)=1
R(9) = 1 = R(12) = R(15),
R(18) = R(6)+R(9)=1+1=2= R(21)=R(24),
R(36) = R(12) + R(27) =1 + 3 = 4 = R(39) = R(42),
R(45) = R(15) + R(36) =1 + 4 = 5= R(48) = R(51),
R(54) = R(18) + R(45) =1 + 4 = 5= R(48) = R(51),
R(63) = R(21) + R(54) =2 + 7 =9= R(66) = R(69),
R(72) = R(24) + R(63) =2 + 9 = 11. Ответ: 11
Слайд 2722-4
У исполнителя Утроитель две команды, которым присвоены номера:
1. прибавь 1,
2. умножь
на 3.
Первая из них увеличивает число на экране на 1, вторая — утраивает его.
Программа для Утроителя — это последовательность команд. Сколько есть программ, которые число 4 преобразуют в число 34?
Ответ обоснуйте.
Слайд 2822-4 решение
Тогда R(n) = R(n / 3) + R(n - 1)=
R(n / 3) + R(n - 3) (если n > 3).
При n = 9 R(n)) = 1 (один способ: прибавлением тройки).
Поэтому достаточно постепенно вычислить значения R(n) для всех чисел, кратных 3 и не превосходящих 34: сначала вычисляем R(4), затем R(6), R(9) и т. д.
Имеем:
R(4)=1
R(6) = R(9)=1 = R(5) = R(10)= R(11),
R(12) = R(4)+R(9)=1+1=2= R(13)=R(14),
R(15) = R(5) + R(12) =1 + 2 = 3= R(16) = R(17),
R(18) = R(6) + R(15) =1 + 3 = 4= R(19) = R(20),
R(21) = R(7) + R(18) =1 + 4 = 5= R(22) = R(23),
R(24) = R(8) + R(21) =1 + 5 =6= R(25) = R(26),
R(27) = R(9) + R(24) =1 + 6 =7= R(28) = R(29),
R(30) = R(9) + R(27) =1 + 7 =8= R(31) = R(32),
R(33) = R(10) + R(30) =1 + 8 =9= R(34). Ответ: 9
Слайд 2922-5
У исполнителя Калькулятор две команды:
1. прибавь 2
2. умножь на 3.
Первая из
них увеличивает число на экране на 2, вторая — утраивает его. Сколько различных чисел можно получить из числа 2 с помощью программы, которая содержит ровно 3 команды?
Слайд 3022-5 решение
С помощью одной команды из числа 2 можно получить 2
различных числа:
2 + 2 = 4,
2 * 3 = 6.
С помощью двух команд можно получить по два числа из 4 и 6:
4 + 2 = 6,
4 * 3 = 12,
6 + 2 = 8,
6 * 3 = 18.
С помощью трёх команд получаются следующие числа.
12 + 2 = 14,
12 * 3 = 36,
8 + 2 = 10,
8 * 3 = 24,
18 + 2 = 20,
18 * 3 = 54,
Число 6 даст числа 8 и 18.
Итого: 8 чисел.
Слайд 3122-6
У исполнителя Калькулятор две команды:
1. умножь на 2
2. умножь на 3.
Первая
из них умножает число на экране на 2, вторая — утраивает его.
Сколько различных чисел можно получить из числа 2 с помощью программы, которая содержит ровно 3 команды?
Слайд 3222-6 решение
С помощью одной команды из числа 2 можно получить 2
различных числа:
2 * 2 = 4
2 * 3 = 6.
С помощью двух команд можно получить по два числа из 4 и 6:
4 * 2 = 8
4 * 3 = 12
6 * 2 = 12
6 * 3 = 18
Видим, что два результата совпадают, поэтому получилось 3 числа, а не 4.
С помощью трёх команд получаются следующие числа.
12 * 2 = 24
12 * 3 = 36
8 * 2 = 16
8 * 3 = 24
18 * 2 = 36
18 * 3 = 54
Числа 36 и 24 встречаются дважды, поэтому всего получаем 4 различных числа.
Ответ: 4.
Слайд 3323-1
Сколько существует различных наборов значений логических переменных x1, х2, хЗ, х4,
х5, хб, х7, х8, которые удовлетворяют всем перечисленным ниже условиям?
(x1 —> х2) —> (хЗ—> х4) = 1
(хЗ —> х4) —> (х5 —> хб) = 1
(х5 —> хб) —> (х7 —> х8) = 1
В ответе не нужно перечислять все различные наборы значений переменных x1, х2, хЗ, х4, х5, хб, х7, х8, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.
Слайд 3423-1
Сделаем замену переменных:
(x1 —> х2) = y1; (хЗ—> х4) = y2;
(х5 —> хб) = y3; (х7 —> х8) = y4.
Тогда можно записать систему в виде одного уравнения:
(y1 —> y2) ∧ (y2 —> y3) ∧ (y3 —> y4) = 1.
1 + 3 + 9 + 27 + 81 = 121
Слайд 3523-2
Сколько существует различных наборов значений логических переменных x1, х2, хЗ, х4,
х5, хб, х7, х8, x9, x10 которые удовлетворяют всем перечисленным ниже условиям?
(x1 —> х2) —> (хЗ—> х4) = 1
(хЗ —> х4) —> (х5 —> хб) = 1
(х5 —> хб) —> (х7 —> х8) = 1
(х7 —> х8) —> (х9 —> х10) = 1
В ответе не нужно перечислять все различные наборы значений переменных x1, х2, хЗ, х4, х5, хб, х7, х8, x9, x10 при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.
Слайд 3623-2
1 + 3 + 9 + 27 + 81 + 243
= 364.
Слайд 3723-3
Сколько существует различных наборов значений логических переменных x1, x2, x3, x4,
x5, x6, x7, x8 которые удовлетворяют всем перечисленным ниже условиям?
(x1≡x2)—>(x2≡x3) = 1
(x2≡x3)—>(x3≡x4) = 1
...
(x6≡x7)—>(x7≡x8) = 1
В ответе не нужно перечислять все различные наборы значений переменных x1, x2, x3, x4, x5, x6, x7, x8 при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.
Слайд 3823-3 решение
Запишем переменные в строчку: x1x2x3x4x5x6x7x8. Импликация ложна только в том
случае, когда из истины следует ложь. Условие не выполняется, если в ряду после пары одинаковых цифр присутствует другая цифра. Например, «11101...», что означает невыполнение второго условия.
Рассмотрим комбинации переменных, удовлетворяющие всем условиям. Выпишем варианты, при которых все цифры чередуются, таких два: 10101010 и 01010101. Теперь для первого варианта, начиная с конца, будем увеличивать количество повторяющихся подряд цифр (настолько, насколько это возможно). Выпишем полученные комбинации:
«1010 1011; 1010 1111; 1011 1111; 1111 1111; 1010 1000; 1010 0000; 1000 0000; 0000 0000» таких комбинаций девять, включая исходную. Аналогично для второго варианта:
«0101 0101; 0101 0100; 0101 0000; 0100 0000; 0000 0000; 0101 0111; 0101 1111; 0111 1111; 1111 1111» — таких комбинаций также девять. Заметим, что комбинации 0000 0000 и 1111 1111 учтены дважды. Таким образом, получаем 9 + 9 − 2 = 16 решений.
Слайд 3923-4
Сколько существует различных наборов значений логических переменных x1, x2, x3, x4,
x5, x6, x7, которые удовлетворяют всем перечисленным ниже условиям?
(x1≡x2)—>(x2≡x3) = 1
(x2≡x3)—>(x3≡x4) = 1
...
(x5≡x6)—>(x6≡x7) = 1
В ответе не нужно перечислять все различные наборы значений переменных x1, x2, x3, x4, x5, x6, x7, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.
Слайд 4123-5
Сколько существует различных наборов значений логических переменных x1, x2, ... x8,
которые удовлетворяют всем перечисленным ниже условиям?
((x1 ≡ x2) ∨ (x3 ≡ x4)) ∧ (¬(x1 ≡ x2) ∨ ¬(x3 ≡ x4)) = 1
((x3 ≡ x4) ∨ (x5 ≡ x6)) ∧ (¬(x3 ≡ x4) ∨ ¬(x5 ≡ x6)) = 1
((x5 ≡ x6) ∨ (x7 ≡ x8)) ∧ (¬(x5 ≡ x6) ∨ ¬(x7 ≡ x8)) = 1
В ответе не нужно перечислять все различные наборы значений переменных x1, x2, … x8 при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.
Слайд 4223-5 решение
Построим древо решений первого уравнения:
Заметим, что выражение (x3 ≡ x4) в
двух случаях равно 1 и в двух случаях равно 0.
Таким образом, одно уравнение имеет восемь решений.
Слайд 4323-5 решение (продолжение 1)
Второе уравнение связано с первым только через выражение
(x3 ≡ x4). Построим древо решений второго уравнения:
Для каждого из значений 0 и 1 выражения (x3 ≡ x4) существует четыре набора переменных x1, x2,...,x4, удовлетворяющих первому уравнению (см. первый рисунок). Таким образом, система из двух уравнений имеет 4 · 4 = 16 решений.
Слайд 4423-5 решение (продолжение 2)
Третье уравнение связано со вторым только через выражение
(x5 ≡ x6). Построим древо решений третьего уравнения:
Для каждого из значений 0 и 1 выражения (x5 ≡ x6) существует 2 · 4 = 8 наборов переменных x1, x2,...,x6, удовлетворяющих первому уравнению (см. первый и второй рисунок). Таким образом, система из трёх уравнений имеет 8 · 4 = 32 решения.