Урок 22. самостоятельная работа

С углубленным изучением отдельных предметов»

РАБОЧАЯ ТЕТРАДЬ

По информатике

ученика(цы) 6 класса ____

_________________________

II часть

Автор: Кудимова Н. В.

Г. Балахна

Г.

Урок 17. Условия в языке Робота.

Цикл «Пока»

Урок 22. самостоятельная работа Итак, наш Робот умеет выполнять многие команды и решать достаточно сложные задачи, но все равно складывается такое впечатление, что он является каким-то слепым. Ведь он точно выполняет все команды, которые мы ему записали, а если там край или стена, он же не сможет выполнить весь алгоритм. Или допустим, наш Робот оказался в лабиринте, огороженном стенками, толщиной в одну клетку и знает лишь то, что выход из него находится где-то сверху, получается, что наш Робот останется в этом лабиринте навечно?

А что если разработать дополнительные команды, которые помогут разобраться Роботу в окружающей обстановке? Будем считать, что у Робота есть некие датчики, определяющие, можно ли идти вправо, влево, вниз или вверх, анализирующие величину температуры и радиации в клетке, в которой располагается Робот, а также ее цвет. И тогда нам необходимо добавить новые выражения в СКИ Робота, которые мы назовем условиями.

Условие – это выражение логического типа, которое может принимать одно из двух значений: истина, если условие верное, или ложь, если условие не верно.

Но далеко не все условия, которые мы с вами сможем придумать, будут понятны Роботу, поэтому существует определенный перечень условий, которые используются в среде Робота.

Условия в языке Робота:

1. Робот для клетки, в которой он находится, может определять, есть ли в указанном направлении стена или там свободно:

справа

слева

сверху

снизу

2. Робот для клетки, в которой он находится, может определять, есть ли возможность двигаться в указанном направлении или там край:

справа

слева

сверху

снизу

3. Робот может определять окрашена ли клетка, в которой он находится, в какой-либо цвет или нет:

клетка закрашена

клетка не закрашена

4. Робот может определять номер цвета в той клетке, в которой находится, измерять температуру и радиацию, сравнивать полученные значения между собой либо с какими-то значениями:

=

Выражение 1
Выражение 2

=

В качестве любого выражения может использоваться либо числовое выражение, либо одно из ключевых слов: цвет клетки, температура, радиация.

Итак, систему условий мы разработали, но как ее использовать? Проверяя любое из этих условий, Робот получает ответ «да» (условие истинно) или «нет» (условие ложно). Нам же нужно в алгоритме предусмотреть возможность проверки этих ответов и в зависимости от них выполнять или нет определенные команды.

Для этого мы будем использовать новую служебную алгоритмическую конструкцию, которая называется цикл «Пока».

Структура алгоритмической конструкции цикла Пока записывается следующим образом:

нц пока

тело цикла

команда 1;

команда 2;

кц

Это уже второй вид циклических алгоритмов.

Итак, существуют два вида циклических алгоритмов. В одном из них мы знаем заранее, сколько раз надо сделать эти действия, в другом мы должны остановиться лишь тогда, когда выполним работу, то есть наши действия прекращаются при выполнении какого-то условия.

Примером цикла первого типа является наша жизнь в рабочие дни (от понедельника до субботы) – мы выполняем 6 раз почти одни и те же действия.

Пример цикла второго типа – алгоритм распилки бревна: мы не можем заранее сказать, сколько раз нам надо провести пилой от себя и на себя – это зависит от плотности дерева, его толщины, качества пилы и наших усилий. Однако мы точно знаем, что надо закончить работу, когда очередной отпиленный чурбак упадет на землю.

Если число шагов известно, то: повторить 6 раз проснуться встать умыться позавтракать пойти в школу вернуться домой пообедать сделать уроки погулять поужинать лечь спать Если же число шагов не известно, то: положить бревно на козлы наметить место распила пока чурбак не отвалится двигать пилу в направлении от себя двигать пилу в направлении на себя положить чурбак в поленницу

Вернемся к новому циклу «Пока». Также как и цикл «n раз», эта конструкция служит для повторений указанных команд несколько раз, но здесь команды цикла выполняются пока мы получаем ответ «да» на условие. Точнее, сначала проверяется условие. Если получен ответ «да», то выполняются команды внутри цикла. Затем опять проверяется условие, и если опять получен ответ «да», то еще раз выполняются команды внутри цикла. И так повторяется до тех пор, пока на очередную проверку условия не будет получен ответ «нет». Как только это происходит, выполнение цикла прекращается, и дальше выполняются команды идущие после цикла.

Система условий понятных Роботу у нас теперь есть, структуру цикла работающего в зависимости от истинности условия мы тоже разобрали. Остается вспомнить условие задачи, с который мы начали сегодняшний урок. Робот находится в лабиринте, огороженном стенками, толщиной в одну клетку и знает лишь то, что выход из него находится где-то сверху, необходимо помочь Роботу выбраться ил лабиринта.

Решение задачи будет выглядеть следующим образом:

нц пока сверху стена

вправо;

кц

вверх;

Прежде чем сделать шаг, Робот проверит, есть ли сверху стена, и он сделает шаг только в том случае, если получит ответ «да» на свой вопрос «сверху стена». Получив ответ «нет», робот не станет делать очередной шаг вправо, следовательно, остановится около выхода из лабиринта, а затем выйдет из него, выполнив команду вверх.

Правила использования цикла Пока:

1. Цикл «Пока» используется тогда, когда число повторений цикла заранее неизвестно, но ограничено каким-то условием.

2. Оператор цикла начинается заголовком цикла – ключевым выражением нц пока, за которым указывается условие, при котором выполняется цикл. Если условие перестает быть верным (истинным), выполнение цикла заканчивается и исполнитель переходит к следующей команде.

3. Следовательно, если перед выполнением цикла условие ложно, то цикл не выполнится ни разу.

4. Для того чтобы легче разбираться в программе, все команды, входящие в цикл, смещают вправо на 2-3 символа – это позволяет сразу видеть, где начинается и где заканчивается цикл.

Примеры составления циклов с использованием условий:

нц пока справа свободно

закрасить; вправо;

кц

нц пока снизу стена

вправо

кц

нц пока цвет клетки=10

закрасить(15); вправо;

вниз;

кц

нц пока температура0

вправо;

кц

Для графического обозначения цикла «Пока» используется следующий вид блок-схемы.

*

Рассмотрим решение следующей задачи: Известно, что на пути Робота при движении вправо находится стенка. Необходимо закрасить в синий цвет все клетки начиная с исходной до стенки и вернуться в начальное положение. (Количество клеток от исходной до стенки считается неизвестным).

алг путь

дано! стена на пути

надо! закрасить путь в синий цвет

нач

краска(1);

нц пока справа свободно

закрасить; вправо;

кц

закрасить;

нц пока клетка закрашена

влево;

кц

вправо;

кон

Блок-схема решения данной задачи, будет выглядеть следующим образом:

Задания:

1. Известно, что Робот находится внутри некоторого прямоугольника, ограниченного стенками. Размеры прямоугольника и местоположение Робота неизвестны. Необходимо перекрасить внутренний контур прямоугольника в синий цвет.

*

2. Дано решение задачи: Робот находится в левом конце тоннеля, необходимо закрасить первые клетки, сверху которых имеются стенки. Необходимо изобразить, как будет выглядеть поле после выполнения этой задачи отботомРоРоботом, в каждом из случаев.

алг тоннель

дано! горизонтальный тоннель

надо! закрасить первые клетки сверху, которых имеются стенки

нач

краска(4);

нц пока сверху стена

закрасить;

вправо;

кц

кон

*

а)

б)

*

в)

*

3. Изобразить, как будет выглядеть поле после выполнения Роботом следующей программы:

алг пример

дано! тоннель

надо! закрасить клетки тоннеля

нач

краска(1);

пока сверху свободно

вверх;

кц

пока снизу свободно

закрасить;

кц

кон

*

Урок 18. Решение задач

4. Урок 22. самостоятельная работа Известно, что Робот находится над верхней границей некоторого коридора с одним входом (вход расположен снизу справа от Робота). Необходимо закрасить в синий цвет все клетки начиная с входной до левого конца коридора, а в красный – до правого конца коридора. Затем необходимо выйти из коридора. (Внизу показан конечный результат). (Количество клеток от исходной до входной и длина коридора считаются неизвестными).

5. Робот находится около длинной стены, расположенной снизу от Робота, в стене имеется проход. Ширина прохода и расстояние до него неизвестны. Нужно закрасить проход в желтый цвет и переместить Робота к продолжению стены с другой стороны прохода (в точку А).

* А

Урок 22. самостоятельная работа

6. Урок 22. самостоятельная работа Робот начинает движение из исходного положения, указанного на рисунке звездочкой. Нарисуй путь, по которому пройдет Робот, выполняя данный алгоритм на двух различных рисунках.

*
*

7. Роботу было задано следующее задание: начиная с начальной точки, отмеченной на рисунке звездочкой, закрасить отмеченные кружочком клетки красным цветом и остановиться в точке А. Некоторый ученик предложил следующий вариант решения задачи:

алг путь

дано! рабочее поле

надо! закрасить клетки и остановится в точке А

нач

краска(4);

нц пока справа свободно

* 0 0
A

вправо;

кц

нц пока снизу свободно

влево;

кц

закрасить;

нц пока снизу стена

влево;

кц

закрасить;

нц пока снизу свободно

вниз;

кц

кон

Проверьте, правильно ли работает данный алгоритм, и если нет, предложите свой алгоритм, который позволит Роботу правильно выполнить задание.

8. Составьте блок-схему для решения следующей задачи: Робот находится в левой верхней точке буквы Ю, построенной из стенок. Толщина всех линий – одна клетка. Форма буквы известна, а размеры неизвестны. Необходимо: закрасить букву синим цветом и вернуться в исходное положение

Урок 22. самостоятельная работа

Урок 22. самостоятельная работа
Урок 19. Самостоятельная работа

Для успешного выполнения самостоятельной работы вам необходимо уметь составлять условия, понятные Роботу, а также решать задачи с использованием цикла «Пока».

Дополнительные задачи:

9. Урок 22. самостоятельная работа Известно, что Робот находится где-то внутри пробирки шириной в одну клетку, расположенной вертикально. Высота пробирки неизвестна. Наполнить пробирку водой (закрасить клетки синим цветом) и переместить Робота на стол (стол коричневого цвета).

10. Известно: Робот находится где-то между двумя вертикальными стенками одинаковой, но неизвестной высоты. Необходимо: Закрасить зеленым цветом клетки, прилегающие к стенкам с обеих сторон. В нижней части рабочего поля показано, что должно получиться.

Урок 22. самостоятельная работа

Урок 22. Создание стиля с использованием движущейся маски


Похожие статьи.

Понравилась статья? Поделиться с друзьями: