1 июня 2016 г.

ЕГЭ по информатике 2016. Алгоритмизация, задание 20

Задание 20. Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 9.


Решение:
1. Видим, что в последней строке выводятся на экран переменные a и b, поэтому сначала нужно определить, что они обозначают в программе.
2. Перед началом цикла переменные a и b принимают значение ноль.
3. На каждом шаге цикла при выполнении некоторого условия переменная a увеличивается на 1, а b увеличивается на x mod 10, то есть, на остаток от деления x на 10 – это последняя цифра десятичной записи числа x.
4. В конце каждого шага цикла операция x:=x div 10 отсекает последнюю цифру в десятичной записи числа.
5. Цикл заканчивается, когда перестаёт выполняться условие x > 0, то есть, когда все цифры исходного числа отброшены.
6. Таким образом, делаем вывод: после завершения цикла в переменной a находится количество цифр в десятичной записи числа, а в переменной b – их сумма.
7. Если было выведено 2 и 9, то в числе 2 цифры, и их сумма равна 9; таким образом, нам нужно найти все двузначные числа, в котором сумма значений цифр равна 9.
8. Число 9 может быть разложено на два слагаемых, меньших 10, как 
9 = 1 + 8 = 2 + 7 = 3 + 6 = 4 + 5 = 5 + 4 = 6 + 3 = 7 + 2 = 8 + 1 = 9 + 0. 
Нам подходят числа 18, 27, 36, 45, 54, 63, 72, 82 и 90.
9. Наибольшее число 90.

Ответ: 90

ЕГЭ по информатике 2016. Алгоритмизация, задание 21

Задание 21. Напишите в ответе число, которое будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на пяти языках программирования).

Решение:
1. В конце работы программы выводится значение переменной М.
2. Программа ищет значение t, при котором функция F(t) принимает максимальное значение на интервале от a до b. Это значение и присваивается переменной М.
3.  График заданной функции   F(x) = 3*(x - 1)*(x - 1) + 37 – это парабола, ветви которой направлены вверх, то есть она имеет точку минимума, но не точку максимума.
4. Поэтому нужно проверить значения функции на концах отрезка и выбрать из них наибольшее.
5. При t=5 получаем F(t)=112.
6. При t=35 получаем F(t)=3505.
7. Таким образом, ответ: 35.


Ответ: 35

ЕГЭ по информатике 2016. Алгоритмизация, задание 19

Задание 19. В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 8, 4, 3, 0, 7, 2, 1, 5, 9, 6 соответственно, т.е. A[0] = 8, A[1] = 4 и т.д.
Определите значение переменной s после выполнения следующего фрагмента программы (записанного ниже на разных языках программирования).


Решение:
1. Что записывается в переменную s? Индекс некоторого элемента массива. 
2. Как определяется этот индекс? Значение элемента массива меньше или равно 4.
 Запоминается наибольший индекс элемента, значение которого меньше или равно 4.
3. Значения элементов массива A[1], A[2], A[3], A[5] и A[6] меньше или равно 4. Максимальный индекс элемента массива равен 6.

Ответ: 6

ЕГЭ по информатике 2016. Алгоритмизация, задание 11

Задание 11. Ниже на пяти языках программирования записан рекурсивный алгоритм F.

Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова F(6)?

Решение (построение дерева вызовов):
1. Символ «звёздочка» выводится на экран при положительном значении единственного параметра функции, т.е. достаточно определить порядок и количество рекурсивных вызовов при n > 0.
2. n div 3 – это частное от деления n на 3
3.  При n > 0 выполняется два рекурсивных вызова, решение удобно оформлять в виде двоичного дерева (в узлах отмечен вывод символа «звёздочка» и записаны положительные  значения параметров при вызове функции):


4. Считаем «звёздочки», получаем 11.

Ответ: 11

25 мая 2016 г.

ЕГЭ по информатике 2016. Алгоритмизация, задание 14

Задание 14. Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости: вверх,             вниз, влево, вправо.
При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ:
сверху свободно, снизу свободно, слева свободно, справа свободно
Цикл
ПОКА < условие >
  последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно. В конструкции
ЕСЛИ < условие >
   ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится и программа прервётся.
Сколько клеток лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ уцелеет и окажется в закрашенной клетке (клетка А1)?
НАЧАЛО
ПОКА слева свободно ИЛИ сверху свободно
ЕСЛИ сверху свободно
ТО вверх
ИНАЧЕ влево
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА

КОНЕЦ

Решение
1. Робот продвигается по лабиринту вверх и влево. При одновременном выполнении условий слева свободно и сверху свободно Робот перемещается вверх, встретив препятствие в виде стены сверху, продолжает движение влево. 
2. Робот останавливается, попав в угол, ограниченный стенами слева и сверху. Таких угла три: А1, В2 и А4. Начав движение из любой клетки лабиринта, Робот остановится в одном их трёх углов.
Так, начав движение из клетки D6, Робот попадает в клетку D4, далее С4, переходит в С2 и останавливается в клетке В2.

 

2. Если определим, из каких клеток Робот попадает в «зеленый» или «голубой» угол, то можно будет посчитать и клетки, которые приводят в «серый» угол.
3.  Начиная движение в клетках А4, В4, А5, В5, А6 и В6,  Робот приходит в угол А4 (голубой) – 6 клеток.
4. Стартуя из клеток В2, С2, В3 и С3 Робот попадает в угол В2 (зеленый). Начало пути из клеток С4, D4, С5, D5, С6 и D6 так же приводит в угол В2 – 10 клеток.
5. На поле 36 клеток, 6 + 10 = 16 клеток приводят не в «серый» угол, значит 36 – 16 = 20 клеток приведут Робота в клетку А1.

Ответ: 20

ЕГЭ по информатике 2016. Алгоритмизация, задание 22

Задание 22. У исполнителя Вычитатель две команды, которым присвоены номера:
1. Вычти 2
2. Вычти 5
Первая из них уменьшает число на экране на 2, вторая уменьшает его на 5.
Программа для Вычитателя – это последовательность команд.
Сколько есть программ, которые число 22 преобразуют в число 2?

Решение:
Число
Команды
Количество программ
22

1
20
-2
1
18
-2
1
17
-5
1
16
-2
1
15
-2; -5
1 + 1 = 2
14
-2
1
13
-2; -5
2 + 1 = 3
12
-2; -5
1 + 1 = 2
11
-2; -5
3 + 1 = 4
10
-2; -5
2 + 2 = 4
9
-2; -5
4 + 1 = 5
8
-2; -5
4 + 3 = 7
7
-2; -5
5 + 2 = 7
6
-2; -5
7 + 4 = 11
5
-2; -5
7 + 4 = 11
4
-2; -5
11 + 5 = 16
3
-2; -5
11 + 7 = 18
2
-2; -5
16 + 7 = 23




Ответ: 23

20 мая 2016 г.

ЕГЭ по информатике 2016. Алгоритмизация, задание 8

Задание 8. Определите число, которое будет напечатано в результате выполнения программы, записанной ниже на пяти языках программирования.

Решение:
1. Из программы видно, что начальные значения переменных s и n равны 0.
2. Цикл заканчивается, когда нарушается условие s <= 251, то есть количество шагов цикла определяется изменением переменной s.
3, После окончания цикла выводится значение переменной n.
4. Таким образом, задача сводится к тому, чтобы определить число шагов цикла, необходимое для того, чтобы значение s стало больше 251.
5. С каждым шагом цикла значение s увеличивается на 25, а значение n увеличивается на 1, так что s = 25n, где n – это число шагов цикла.
6. Поскольку s увеличивается на 25, конечное значение s должно быть кратно 25, то есть это 275 > 251.
7. Для достижения этого значения переменную s нужно 11 раза увеличить на 25, поэтому цикл выполнится 11 раз.

Ответ: 11

ЕГЭ по информатике 2016. Алгоритмизация, задание 6

Задание 6. У исполнителя Аккорд-4 две команды, которым присвоены номера:
1. вычти 1
2. умножь на 4
Выполняя первую из них, Аккорд-4 вычитает из числа на экране 1, а выполняя вторую, умножает это число на 4.
Запишите порядок команд в программе, которая содержит не более пяти команд и преобразует число 5 в число 62. Если таких программ более одной, то запишите любую из них.
В ответе указывайте лишь номера команд. Так, для программы
умножь на 4
вычти 1
вычти 1
нужно написать: 211. Эта программа преобразует, например, число 7 в число 26.

Решение:
1.  Решаем обратную задачу – получаем 5 из 62.
2.  Число 62 не делится на 4, следовательно была применена команда вычти 1. 63 не делится на 4, опять выполняем команду вычти 1, получаем число 64:








-1

-1

5
®
?
®
?
®
64
®
63
®
62

3. Число 64 делится на 4, результат 16. 16 делится на 4, получаем 4:




*4

*4

-1

-1

5
®
4
®
16
®
64
®
63
®
62

4. Число 4 получается из 5:


-1

*4

*4

-1

-1

5
®
4
®
16
®
64
®
63
®
62

5. Запишем программу для исполнителя 12211.


Ответ: 12211