Наши занятия опираются на учебник:
Звонкин А. К. Информатика : алгоритмика : учеб. для 6 кл. общеобразоват. учреждений / А. К. Звонки, С. К. Ландо, А. Л. Семенов. – М. : Просвещение, 2006. – 239 с. : ил. – ISBN 5-09-014569-5.
3. Водолей
Вам нужны новые примеры Исполнителей? Вот один из них. Мы назвали его Водолеем, потому что он занят переливанием воды.
Трудно ли отмерить литр воды? Ответ зависит от того, какие имеются ёмкости. Если есть литровая банка A, то программа будет состоять из одного шага:
Немного усложним задание. Представим себе, что у нас есть две ёмкости: двухлитровая банка A и трёхлитровая банка B. Тогда решение задачи состоит из двух шагов:
Скачать файл с заданиемПосле первого шага в банке B будет 3 литра воды, а на втором шаге выливаем 2 литра воды из B в A, после чего в B остаётся 1 литр воды.
Задача 1.1 Отмерить 1 литр воды с помощью одной 3-литровой банки и одной 5-литровой банки.
Дадим теперь более строгое описание Водолея и его команд. Прежде всего у него должен быть источник воды: река, озеро или бассейн, количество воды в котором не ограничено. Затем мы должны зафиксировать число ёмкостей (вёдер, банок и прочего) и величину каждой из них. Обозначим ёмкости латинским буквам A, B, C, … . Команды Водолея бывают трёх видов.
Первый вид:
наполни A (или B, C, ...)
В результате выполнения этой команды соответствующая ёмкость наполняется до краёв. Команд такого вида столько же, сколько ёмкостей.
Второй вид:
вылей А (или B, C, ...)
В результате выполнения этой команды соответствующая ёмкость становится пустой. Число таких команд также равно числу ёмкостей.
Третий вид:
перелей из A в B (или из A в C и так далее)
Результат этой команды зависит от того, достаточно ли в ёмкости B места для всей воды из ёмкости A. Если да, то ёмкость A становится пустой, а в B оказывается столько воды, сколько было в A и B вместе до переливания. Если же места в B недостаточно, то B становится полной, а в A остаётся столько воды, сколько не поместилось в B. Число команд третьего вида равно числу пар ёмкостей.
Выпишем все команды Водолея с двумя ёмкостями, например с вёдрами A и B:
наполни A перелей из A в B вылей А наполни B перелей из A в B вылей B
Если вёдер три, то общее число команд равно 3 + 3 + 6 = 12.
Обычно в начале каждой задачи все ёмкости пусты. Наша цель — получить (отмерить) требуемое количество воды в одной из ёмкостей, причём неважно, в какой именно и сколько воды будет при этом в остальных ёмкостях.
Водолей — не один Исполнитель, а много Исполнителей с похожими правилами. Чтобы выделить любого из них, нужно зафиксировать величины ёмкостей. А чтобы поставить задачу, надо сказать, сколько воды вы хотите отмерить.