ГлавнаяИнформатикаКак решатьНа экране есть два окна, в каждом из которых написано по числу

На экране есть два окна, в каждом из которых написано по числу

2016-06-22 18:58:35

Формулировка задания: На экране есть два окна, в каждом из которых написано по числу. У исполнителя Сумматор две команды, которым присвоены номера: 1 – запиши сумму чисел в первое окно; 2 – запиши сумму чисел во второе окно. Выполняя первую из них, Сумматор складывает числа в окнах и заменяет этой суммой число в первом окне, а выполняя вторую, складывает числа и заменяет этой суммой число во втором окне. Запишите порядок команд в программе получения из пары чисел A и B пары чисел C и D, содержащей не более K команд, указывая лишь номера команд.

Задание входит в ЕГЭ по информатике для 11 класса под номером 6 (Анализ и построение алгоритмов для исполнителей).

Рассмотрим, как решаются подобные задания на примере.

Пример задания:

На экране есть два окна, в каждом из которых написано по числу. У исполнителя Сумматор две команды, которым присвоены номера:
1. запиши сумму чисел в первое окно
2. запиши сумму чисел во второе окно
Выполняя первую из них, Сумматор складывает числа в окнах и заменяет этой суммой число в первом окне, а выполняя вторую, складывает числа и заменяет этой суммой число во втором окне. Запишите порядок команд в программе получения из пары чисел 1 и 2 пары чисел 13 и 4, содержащей не более 5 команд, указывая лишь номера команд.
(Например, программа 21211 это программа
запиши сумму чисел во второе окно
запиши сумму чисел в первое окно
запиши сумму чисел во второе окно
запиши сумму чисел в первое окно
запиши сумму чисел в первое окно
которая преобразует пару чисел 1 и 0 в пару чисел 8 и 3.)

Решение:

Нужно получить из пары чисел 1 и 2 пару чисел 13 и 4, используя не более 5 команд. Лучше всего решать эту задачу от обратного – получить из пары чисел 13 и 4 пару чисел 1 и 2. Так будет проще определить, в какое окно записывалась сумма чисел.

Заменим команды на обратные: «запиши сумму чисел в первое окно» на «запиши разность чисел в первое окно», а «запиши сумму чисел во второе окно» на «запиши разность чисел во второе окно». И решим эту задачу от обратного.

Так как 13 больше 4, первой командой будет «запиши разность чисел в первое окно» и его значение будет равно:

13 – 4 = 9

Так как 9 больше 4, следующей командой будет «запиши разность чисел в первое окно» и его значение будет равно:

9 – 4 = 5

Так как 5 больше 4, следующей командой будет «запиши разность чисел в первое окно» и его значение будет равно:

5 – 4 = 1

Так как 1 меньше 4, следующей командой будет «запиши разность чисел во второе окно» и его значение будет равно:

4 – 1 = 3

Так как 1 меньше 3, последней командой будет «запиши разность чисел во второе окно» и его значение будет равно:

3 – 1 = 2

Порядок действий представлен ниже в виде таблицы:

Первое окно Второе окно
13 4
13 – 4 = 9 4
9 – 4 = 5 4
5 – 4 = 1 4
1 4 – 1 = 3
1 3 – 1 = 2

Ровно за 5 команд мы получили из пары чисел 13 и 4 пару чисел 1 и 2. Осталось изменить порядок команд на обратный и заменить названия команд на номера исходных. Таким образом, пару чисел 13 и 4 из пары чисел 1 и 2 мы можем получить выполнением команд: «запиши разность чисел во второе окно», «запиши разность чисел во второе окно», «запиши разность чисел в первое окно», «запиши разность чисел в первое окно», «запиши разность чисел в первое окно» или 22111.

Проверим, что все сделано верно:

Первое окно Второе окно
1 2
1 1 + 2 = 3
1 1 + 3 = 4
1 + 4 = 5 4
5 + 4 = 9 4
9 + 4 = 13 4

Ответ: 22111

Есть другой способ решения?

Наверх