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