Слайд 2Задание 22
Оператор присваивания и ветвления. Перебор вариантов, построение дерева.
Слайд 3Оператор присваивания, операторы div и mod
1 тип
Слайд 4Задание 1
Переменные X и Y описаны в программе как
целочисленные. Определите значение переменной X после выполнения:
x = 432;
y =
x / 100;
x = (x % 100) * 10;
x = x + y;
Слайд 5Решение
x : = 432
y : = x div 100 =
4
x : = ( x mod 100 ) * 10
= (32) *10 = 320
x : = x + y = 320 + 4 = 324
Слайд 6Задание 2
Определите значение суммы X и Y после выполнения:
x =
4 + 8 * 3;
y = x%10 + 15;
x =
y/10 + 3;
Слайд 7Решение
x : = 4 + 8 * 3 = 28,
y
: = ( x mod 10 ) + 15 =
8 + 15 = 23,
x : = ( y div 10 ) + 3 = 2 + 3 = 5.
Слайд 8Задание 3
Определите значение переменной "с" после выполнения следующего фрагмента программы:
x
= 8 + 2*5;
y = (x % 10) + 14;
x
= (y / 10) + 3;
c = x - y;
Слайд 9Решение
x:= 8 + 2*5 = 8 + 10 = 18;
y:=
(x mod 10) + 14 = 8 + 14 =
22;
x:= (y div 10) + 3 = 2 + 3 = 5;
c:= x - y = 5 - 22 = -17;
Слайд 11Задание 1
Определите значение переменной c после выполнения следующего фрагмента программы:
a
= 22;
b = 3;
a = - 2 * b +
a / 2;
if (a < b)
c = 4 * b – 3 * a;
else
c = 3 * a + 4 * b;
Слайд 12Решение
a := 22;
b := 3;
a := - 2 * b
+ a / 2 = -6 + 11 = 5;
(a
< b) = 0 => "else"
c := 3 * a + 4 * b = 15 + 12 = 27.
Слайд 13Задание 2
Определите значение переменной c после выполнения следующего фрагмента программы:
x=
2.5E+02;
x= x + 0.5E+02;
y= -x;
c= -2*y - x;
Слайд 14Решение
x:= 2.5E+02 = 250;
x:= x + 0.5E+02 = 250 +
50 = 300;
y:= -x = - 300;
c:= -2*y - x
= 600 - 300 = 300;
Слайд 15Задание 3
Определите значение переменной c после выполнения следующего фрагмента программы:
a
= 56;
b = 7;
k = 6;
a = a/7 - b;
if
(a > b)
c = a - k*b;
else
c = a + k*b;
Слайд 16Решение
a := 56,
b := 7,
k := 6.
a := a /
7 − b = 1,
Условие a > b не выполняется, поэтому далее
выполним: c := a + k*b = 1 + 6*7 = 43.
Слайд 17Задание 4
Определите значение переменной c после выполнения следующего фрагмента программы:
a
= 27;
b = 6;
b = 2 * a / 3
* b;
if (a > b)
c = a - b;
else
c = b + 2 * a;
Слайд 18Решение
a := 27,
b := 6,
b:= 2 *a / 3 *
b = 54 / 3 * 6 = 108,
Условие a
> b не выполняется, поэтому далее выполним: c := b + 2 * a = 108 + 2 * 27 = 162.
Слайд 19Поиск количества программ по заданному числу
3 тип
Слайд 20Задание 1
У исполнителя Увеличитель две команды, которым присвоены номера:
1. прибавь
2,
2. умножь на 3.
Первая из них увеличивает число на экране
на 2, вторая — умножает его на 3.
Программа для Увеличителя — это последовательность команд. Сколько есть программ, которые число 1 преобразуют в число 31?
Слайд 22Задание 2
У исполнителя три команды, которым присвоены номера:
1. прибавь 1,
2.
сделай чётное,
3. сделай нечётное.
Первая из них увеличивает на 1 число
x на экране, вторая умножает это число на 2, третья переводит число x в число 2x + 1. Например, вторая команда переводит число 10 в число 20, а третья переводит число 10 в число 21.
Программа для исполнителя – это последовательность команд. Сколько существует программ, которые число 2 преобразуют в число 16?
Слайд 23Решение
Обозначим R(n) — количество программ, которые преобразуют число 2 в
число n.
Верны следующие соотношения:
1. Если n нечётное, то тогда R(n)
= R(n − 1) + R((n − 1) \ 2), (если n > 5) так как есть два способа получения n: прибавлением единицы или использованием команды 3.
2. Если n чётное, то тогда R(n) = R(n − 1) + R(n \ 2), (если n > 4) так как есть два способа получения n: прибавлением единицы или использованием команды 2.
Достаточно вычислить значения R(n) для всех чисел не превосходящих 16.
Имеем:
R(3) = 1,
R(4) = 2,
R(5) = 3 ,
R(6) = R(5) + R(3) = 3 + 1 = 4,
R(7) = R(6) + R(3) = 4 + 1 = 5,
R(8) = R(7) + R(4) = 5 + 2 = 7,
R(9) = R(8) + R(4) = 7 + 2 = 9,
R(10) = R(9) + R(5) = 9 + 3 = 12,
R(11) = R(10) + R(5) = 12 + 3 = 15,
R(12) = R(11) + R(6) = 15 + 4 = 19,
R(13) = R(12) + R(6) = 19 + 4 = 23,
R(14) = R(13) + R(7) = 23 + 5 = 28,
R(15) = R(14) + R(7) = 28 + 5 = 33,
R(16) = R(15) + R(8) = 33 + 7 = 40,
Слайд 24Задание 3
Исполнитель Вычитатель преобразует число, которое записано на экране. У
исполнителя Вычитатель две команды, которым присвоены номера:
1. Вычти 2
2. Вычти
5
Первая из них уменьшает число на экране на 2, вторая уменьшает его на 5. Программа для Вычитателя – это последовательность команд. Сколько есть программ, которые число 22 преобразуют в число 2?
Слайд 26Поиск количества чисел по заданному числу команд
4 тип
Слайд 27Задание 1
У исполнителя Калькулятор две команды:
1. прибавь 2
2. умножь на
3.
Первая из них увеличивает число на экране на 2, вторая —
утраивает его. Сколько различных чисел можно получить из числа 2 с помощью программы, которая содержит ровно 3 команды?
Слайд 28Решение
С помощью одной команды из числа 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 чисел.
Слайд 29Задание 2
У исполнителя Калькулятор две команды:
1. умножь на 2
2. умножь
на 3.
Первая из них умножает число на экране на 2,
вторая — утраивает его. Сколько различных чисел можно получить из числа 2 с помощью программы, которая содержит ровно 3 команды?
Слайд 30Решение
С помощью одной команды из числа 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.
Слайд 31Задание 3
У исполнителя Калькулятор две команды:
1. прибавь 2
2. прибавь 3.
Первая
из них увеличивает число на экране на 2, вторая — на
3. Сколько различных чисел можно получить из числа 2 с помощью программы, которая содержит ровно 10 команд?
Слайд 32Решение
Если в программе n команд 1, тогда в ней будет
10-n команд 2. n изменяется от 0 до 10. Всего
11 программ, следовательно, 11 чисел.