Задания информатика робот алгоритмы. Исполнитель Робот


Управление исполнителем Робот в системе КУМИР

Робот существует в определенной обстановке (прямоугольном клетчатом поле). Между некоторыми клетками поля могут быть расположены стены. Некоторые клетки могут быть закрашены (рис. 3.11).

Робот занимает ровно одну клетку поля.

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

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

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

О
шибки: 1 синтаксические; 2. логические

Описания обстановок хранятся в текстовых файлах специального формата (формат.fil).

Текущая - обстановка, в которой находится Робот в данный момент (включая информацию о положении Робота).

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

Порядок работы:


  1. Задать стартовую обстановку по условию задачи:
Меню Инструменты → Сменить стартовую обстановку Робота (нарисовать обстаковку по условию задачи, дать имя, сохранить в Личной папке)

2. Указать Исполнителя:

Меню Вставка →Использовать Робот

3. Написать алгоритм решения задачи.

4. Выполнить алгоритм (Меню Выполнение →Выполнить непрерывно /F9)

Система команд исполнителя Робот в системе КУМИР


Команда

Действие

вверх

Робот перемещается на 1 клетку вверх

вниз

Робот перемещается на 1 клетку вниз

влево

Робот перемещается на 1 клетку влево

вправо

Робот перемещается на 1 клетку вправо

закрасить

Робот закрашивает клетку, в которой находится

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

Робот проверяет выполнение соответствующего простого условия

слева свободно



сверху свободно



снизу свободно



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



клетка чистая



Циклические алгоритмы

Цикл – организация повторения действий, пока верно некоторое условие.

Тело цикла – набор повторяемых действий.

Условие – логическое выражение (простое или сложное (составное))
Типы циклов:

1.Цикл «Повторять n раз» 2. Цикл «Пока»
нц n раз нц пока
. . Тело цикла. . Тело цикла
кц кц

Пример: нц пока справа свободно


Общий вид цикла «Повторять n раз:

ПОВТОРИТЬ n РАЗ

КОНЕЦ
кц

Общий вид цикла «пока»:

ПОКА ДЕЛАТЬ

КОНЕЦ
Составные условия образуются из одного или нескольких простых условий и служебных слов И, ИЛИ, НЕ.


Составное условие А И В (где А, В - простые условия), выполнено, когда выполнено каждое из двух входящих в него простых условий.

Пусть А - сверху свободно, В - справа свободно, тогда составное условие А И В - сверху свободно И справа свободно.


Составное условие А ИЛИ В выполнено, когда выполнено хотя бы одно из двух входящих в него простых условий: сверху свободно ИЛИ справа свободно
Составное условие НЕ А - выполнено, когда не выполнено условие А.

Пример: Пусть А – клетка закрашена (простое условие).

Проверка составного условия НЕ А:

а) А - выполнено, НЕ А (НЕ закрашено) - не выполнено.

б) А - не выполнено, НЕ А (НЕ закрашено) - выполнено.


Команда ветвления

Ветвление - форма организации действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершается либо одна, либо другая последовательность действий.

Общий вид команды ЕСЛИ:

ЕСЛИ ТО ИНАЧЕ

КОНЕЦ

В языке КУМИР:

Полное ветвление: Неполное ветвление:
если то если то

иначе

все все

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

В системе КУМИР вспомогательные алгоритмы пишутся в конце основной программы (после служебного слова кон ), вызываются на выполнение в основой программе по имени.

Вопросы и задания

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

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

а) два шага; б) четыре шага; в) пять шагов; г) семь шагов?


  1. Петя составил алгоритм, переводящий Робота из клетки А в клетку Б с закрашиванием каких-то клеток. Что должен сделать Коля с этим алгоритмом, чтобы получить алгоритм, переводящий Робота из Б в А и закрашивающий те же клетки?


7. Известны два вспомогательных алгоритма Робота

Нарисуйте, что получится при выполнении Роботом следующих основных алгоритмов:


а)

нц 5 раз


узор_1

вправо; вправо;


б)

нц 7 раз


узор_2

вправо; вправо


в)
вправо; вправо; вправо

вверх; вверх

вправо; вправо; вправо

вниз; вниз


г)
вправо; вправо
вправо; вправо

8. Составьте алгоритмы, под управлением которых Робот закрасит указанные клетки:



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

10. Известно, что где-то правее Робота есть закрашенная клетка.

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

11. Известно, что Робот находится рядом с левым входом в горизонтальный коридор.

12. Известно, что Робот находится где-то в горизонтальном коридоре. Ни одна из клеток коридора не закрашена.

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


13. В ряду из десяти клеток правее Робота некоторые клетки закрашены.

Составьте алгоритм, который закрашивает клетки:

а) ниже каждой закрашенной клетки;

б) выше и ниже каждой закрашенной клетки.


14. Что можно сказать о правильности следующего фрагмента алгоритма?

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

ЕСЛИ справа свободно ТО

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

к
ц

15. Напишите программу, с помощью которой Робот сможет попасть в клетку Б во всех трех лабиринтах.


16. Напишите программу, следуя которой Робот сможет пройти по коридору от левого нижнего угла поля к правому верхнему. Коридор имеет ширину одна клетка и тянется в направлении слева-снизу вправо-вверх. Пример возможного коридора изображен на рисунке.

З

адачи ГИА


  1. Коридор1. Робот находится где-то в вертикальном коридоре. Ни одна из клеток коридора не закрашена. Составить алгоритм, под управлением которого Робот закрасит все клетки этого коридора и вернется в исходное положение.

  1. К
    Надо

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

Возможный вариант начального расположения Робота приведён на рисунке (Робот обозначен буквой «Р»)

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


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


Надо

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

Конечное положение Робота может быть произвольным. При выполнении алгоритма Робот не должен разрушаться.



  1. На бесконечном поле имеется длинная вертикальная стена. Длина стены неизвестна. Робот находится в одной из клеток, расположенной непосредственно справа от стены. Начальное положение робота также неизвестно. Одно из возможных положений робота приведено на рисунке (робот обозначен буквой «Р»):Напишите для работа алгоритм, закрашивающий все прилегающие к стене клетки: слева, начиная с верхней не закрашенной и через одну; справа, начиная с нижней закрашенной и через одну. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведенного выше рисунка робот должен закрасить следующие клетки (см. рисунок): Конечное расположение робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера стены и любой допустимой начальной позиции робота. При исполнении алгоритма Робот не должен разрушиться.


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


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

Конечное положение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера стены и любой допустимой начальной позиции Робота.



Р

  1. На бесконечном поле имеется длинная вертикальная стена. Длина стены неизвестна. Робот находится в одной из клеток, расположенной непосредственно слевав от стены. Начальное положение робота также неизвестно. Одно из возможных положений робота приведено на рисунке (робот обозначен буквой «Р»):
Напишите для работа алгоритм, закрашивающий все прилегающие к стене клетки:

  • слева все;

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

B
1102_ГИА2011

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

Конечное расположение робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться.


В
1103_ГИА_2011


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

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

Методическое пособие для учителей информатики. Евграфова Ольга Владимировна, гимназия №8 г.о. Коломна, 2013 год В процессе изучения предмета «Информатика и ИКТ» учащиеся не только усваивают информационную культуру (культуру грамотного общения с компьютером, оформления документа, электронного общения), но и осваивают азы программирования. Одной из наиболее успешных отечественных разработок в этой области является система программирования Кумир. В ней учащиеся могут получить практические навыки по созданию и отладке алгоритма, работая с исполнителями Робот и Чертѐжник. Преимуществами этой системы являются возможность русскоязычного написания команд на школьном алгоритмическом языке и наглядность получаемого результата выполнения алгоритма. Система КуМир разработана исходя из потребностей российской системы образования. Ее особенности:      свободно распространяемая; многоплатформенная; нулевые требования к ресурсам; поддерживается российской академией наук; в числе разработчиков – авторы многих учебников и учебных пособий по информатике;  бесплатную программную оболочку Кумир можно найти на сайте http://www.niisi.ru/kumir/. К сожалению, авторы новых учебников по информатике уделяют недостаточно внимания или вообще обходят стороной данных исполнителей. В то же время разработчики ГИА и -1-

p. 2

ЕГЭ включают задания с использованием данных исполнителей в задания экзаменационных работ. Тема изучается в 9 классе в разделе «Алгоритмизация и программирование». На изучение темы отводится 9 часов. Учащиеся должны знать: что такое исполнитель; СКИ Робота, среду исполнителя Робот; что такое алгоритм; в чем состоят основные свойства алгоритма; способы записи алгоритмов: блок-схемы, учебный алгоритмический язык; основные алгоритмические конструкции: следование, ветвление, цикл; назначение вспомогательных алгоритмов. Учащиеся должны уметь: понимать описания алгоритмов на учебном алгоритмическом языке; выполнить трассировку алгоритма для известного исполнителя; составлять линейные, разветвляющиеся и циклические алгоритмы управления исполнителя Робот; выделять подзадачи; определять и использовать вспомогательные алгоритмы. Тематический план уроков: № п/п 1. 2. 3. 4. 5. Число Теочасов рия Исполнитель Робот. Система команд исполнителя. Состав1 0,5 ление линейных алгоритмов. Циклические алгоритмы. 3 1 Практическая работа №1. Составление и отладка циклических алгоритмов. Ветвление и последовательная детализация алгоритма. 2 1 Практическая работа №2. Составление и отладка циклических и разветвляющихся алгоритмов. Вспомогательные алгоритмы и подпрограммы. 2 0,5 Пр. раб. №3. «Использование вспомогательных алгоритмов». Контрольная работа. «Создание алгоритма в среде испол1 нителя» Тема урока Практика 0,5 2 1 1,5 1 Материалы к урокам по теме «Учебный исполнитель Робот»: -2-

p. 3

Урок 1. Исполнитель Робот. Система команд исполнителя. Робот движется при исполнении программы в прямоугольном клетчатом поле, между клетками которого могут быть расположены стены. Поле вызывается на экран по кнопке «Окно Робота», которая расположена на панели инструментов. Поле программных кодов Робота. Робот умеет выполнять команды-приказы и команды-вопросы. Команды-приказы: вправо, влево, вверх, вниз, закрасить. Если на пути оказывается стена, то команда не может быть выполнена. Для непосредственного управления Роботом используется дистанционный пульт. Нажимая кнопки на пульте, человек отдает соответствующие команды, и Робот выполняет их. Для программного управления недостаточно знать, какие команды и в какой последовательности надо исполнить. Нужно еще записать эти команды в форме, понятной для компьютера, т.е. оформить в виде алгоритма. В простейшем случае алгоритм для Робота записывается так: Имя алгоритма - это последовательность символов или слов, разделенных пробелами. Первый символ имени не должен начинаться с цифры. Правильные имена: g, sum, периметр ника, Апрель 12, двенадцатое апреля, колич_11_кл. «Правильное» имя выделится синим цветом. использовать Робот алг имя_алгоритма нач последовательность команд кон Для лучшего понимания алгоритма в теле программы можно использовать комментарии. Комментарии начинаются знаком |. Если комментарии занимают несколько строк, то в начале каждой строки должен стоять знак |. На ход выполнения алгоритма комментарии не оказывают никакого действия. Пример 1. Программа «Ход конем» (переместить Робота из точки А в точку Б). Исходное состояние: Программа: Результат: Правила алгоритмического языка разрешают записывать в одной строке несколько команд через точку с запятой. -3-

p. 4

Пример 2. Требуется переместить Робота из точки А в точку Б. Путь, который должен пройти Робот, можно разбить на пять одинаковых участков. Команды прохождения каждого участка удобно сгруппировать в одну строку – это сокращает запись алгоритма и делает его более понятным. Смена обстановки Робота. Для того, чтобы заставить Робота действовать в новой обстановке, ее необходимо загрузить, используя следующие команды главного меню: Выбрать элемент «Робот» «Сменить стартовую обстановку» Открыть нужную папку и выбрать файл. Создание новой обстановки. Для создания новой обстановки для Робота, необходимо выполнить команды главного меню: Выбрать элемент «Инструменты» «Редактировать стартовую обстановку». В окне «Обстановка» выбрать элемент «Обстановка» «Новая обстановка» Задать количество строк и столбцов. Щелчком мыши установить стены и переместить Робота на нужную клетку. Сохранить обстановку, используя команды: «Обстановка» «Сохранить КАК» Задать имя файла и папку для размещения. Нажать копку «Сохранить». Поставить / Убрать стену – щелкнуть по границе между клетками. Закрасить / Сделать чистой клетку – щелкнуть по клетке. Поставить / Убрать точку – щелкнуть по клетке при нажатой клавише Ctrl. Установить радиацию, метки – щелкнуть правой клавишей мыши. Переместить Робота – тащить мышью. «Выполнение» Выполнение программы. «Выполнить непрерывно» Самостоятельная работа на компьютере: 1. Загрузить новую обстановку, перевести Робота в точку «Б», закрасив по пути точки, отмеченные символом «точка»: «Практикум для Робота» папка «1» задание «В» (материалы с сайта К. Полякова http://kpolyakov.narod.ru), составить программу, открыть окно Робота и запустить программу на выполнение. Сохранить программу в своей папке с именем «1_В». 2. Создать новую обстановку, сохранить ее в своей папке с именем «Обстановка_1». Составить программу для новой обстановки и сохранить ее в своей папке с именем «новая_обстановка_1». 3. **Решить другие задачи из папки №1 практикума. -4- Б

p. 5

Урок 2. Циклические алгоритмы. Цикл N - раз. Задание на повторение: Петя составил алгоритм для Робота «Прогулка». Коля стер в нем одну команду. Определите, какую команду стер Коля, если известно, что Робот должен вернуться в исходное состояние. Ответ: вправо использовать Робот алг Прогулка нач. вверх; вправо. ? . вниз; влево; влево кон нц N раз · серия команд кц При составлении алгоритмов часто встречаются случаи, когда некоторую последовательность команд нужно выполнить несколько раз подряд. Например, пример №2 прошлого урока. Для упрощения записи алгоритма в таких случаях можно использовать команду – «Цикл N-раз». N - целое выражение, задающее число повторений. При выполнении алгоритма последовательность команд циклически повторяется указанное число раз. Это число может быть нулевым и даже отрицательным. Эти случаи не считаются ошибочными, просто тело цикла не будет выполнено ни разу, а компьютер сразу перейдет к выполнению команд, записанных после кц. Пример 1. Требуется переместить Робота из точки А в точку Б. А Б Пример 2. Закрасить ряд из 16 клеток. Пример 3. Закрасить прямоугольник размером 5(строк) х 6(столбцов). использовать Робот алг Прямоугольник нач нц 5 раз кц кон Цикл может располагаться внутри другого цикла. Тогда он называется вложенным. -5-

p. 6

Самостоятельная работа на компьютере: Пример 4. Пусть надо перевести Робота из начального положения в точку, обозначенную звездочкой и по пути закрасить клетки лабиринта. Создать обстановку и программу. Сохранить файлы в своей папке. Пример 5. Перевести Робота из начального положения на Базу и закрасить клетки, отмеченные точкой. Создать обстановку и программу. Сохранить файлы в своей папке. Пример 6. Необходимо провести Робота по лабиринту из начального положения в точку A. Пример 7. Необходимо провести Робота вдоль коридора из начального положения до точки A, заглядывая в каждый боковой коридор. Пример 8. Составьте программу закрашивания клеток поля, отмеченных *. Начальное положение Робота обозначение значком ◊. Пример 9*. На поле исполнителя выставлены стены. Необходимо найти начальное, оптимальное положение исполнителя и написать программу, результатом выполнения которой будут закрашенные клетки (так, как показано на рисунке). **Составить программы, используя папку «Практикум для Робота»_ №2. -6-

p. 7

Урок 3. Цикл Пока. Нам необходимо научиться составлять универсальные алгоритмы, которые не будут зависеть от расстояний между Роботом и стеной, длиной стен. Для этого будем использовать новый оператор цикла. нц пока условие серия команд кц При выполнении цикла компьютер повторяет следующие действия:  проверяет условие;  если условие выполняется, то выполняются команды тела цикла и снова проверяет условие и т.д.  если условие не соблюдается, то выполнение слева стена слева свободно цикла завершается, и выполняются команды, справа стена справа свободно записанные после кц. снизу стена снизу свободно  условия цикла (команды-вопросы): сверху стена сверху свободно клетка закрашена клетка чистая Замечания.  Если условие не соблюдается с самого начала, то тело цикла не выполнится ни разу!  Выполнение цикла может не завершиться, если условие все время будет соблюдаться. Такая ситуация обычно возникает в результате ошибок в НЦ ПОКА справа свободно составлении алгоритмов. вправо; влево Пример бесконечного алгоритма (справа нет стены): КЦ Условия бывают простые и составные. Простое условие - это обычно какая-то проверка. Примером может служить любая команда-вопрос Робота. Составное условие формируется из нескольких простых условий с использованием служебных слов И, ИЛИ, НЕ. Если между простыми условиями стоит И, то для выполнения составного условия необходимо, чтобы верными оказались оба простых. Если между простыми условиями стоит ИЛИ, то для выполнения составного условия достаточно, чтобы верным оказалось хотя бы одно простое условие. Пример 2. Робот Пример 1. Педолжен закрасить реместить Роклетки, указанные бота на Базу. на рисунке. Длина стены и расстояние до стены неизвестны. использовать Робот алг На Базу нач. нц пока сверху свободно. . вверх. кц. нц пока сверху стена. . вправо. кц. вверх кон -7-

p. 8

▪ Самостоятельная работа на компьютере: Где-то в поле Робота находится стена в виде уголка, размеры которой неизвестны. Робот из произвольной клетки слева от стены, но обязательно напротив нее, должен дойти до стены и закрасить все клетки вдоль стены за ней, как показано на рисунке. ▪ Необходимо перевести Робота из начального положения в точку A, закрашивая при этом указанные клетки поля. Размеры стен и расстояние между ними могут быть произвольны. ▪ Составить программы, используя папку «Практикум для Робота»  Папка_4_Задачи_А_С_D  Папка_5_Задачи_A_B_C_D Урок 4. Практическая работа №1. Циклические алгоритмы для Робота. Вариант 1 Задание 1.Закрасить клетки, находящиеся слева от стены или сверху стены. Расстояние от Робота до стены неизвестно. Длина стен неизвестна. Создать обстановку и написать программу. Файлы сохранить в своей папке. Р Задание 2. Исполнитель Робот находится где-то внутри ограниченной квадратной области. Длина стороны квадрата неизвестна. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные на диагонали квадрата из левого верхнего в правый нижний угол. Создать обстановку и написать программу. Файлы сохранить в своей папке. Задание 3. Перевести исполнитель из клет- ки А в клетку В, закрасив при этом отмеченные клетки. Длина стен и расстояние между ними неизвестны. Создать обстановку и написать программу. Файлы сохранить в своей папке. -8-

p. 9

Задание 4. Необходимо перевести Робота из начального положения (◊) в точку A, закрашивая при этом указанные клетки поля. Размеры стен и расстояние между ними могут быть произвольны. Задание 5. На бесконечном поле есть ле- сенка. Количество ступенек может быть любым. Нижняя горизонтальная стена продолжается бесконечно вправо, верхняя горизонтальная стена уходит бесконечно влево. Робот находится где-то над нижней горизонтальной стеной. Закрасить клетки, расположенные вдоль вертикальной части ступенек (см. рис.). Конечное положение Робота любое. Создать обстановку и написать программу. Файлы сохранить в своей папке. Каждая ступенька имеет размер: 2 клетки по горизонтали и 2 клетки по вертикали. Вариант 2 Задание 1. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные вдоль левой боковой и над нижней сторонами прямоугольника и прилегающие к стене. Рас- Р стояние от Робота до стен и длина стен неизвестны. Создать обстановку и написать программу. Файлы сохранить в своей папке. Задание 2. Исполнитель Робот находится где-то внутри ограниченной квадратной области. Длина стороны квадрата неизвестна. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные на диагонали квадрата из правого верхнего в левый нижний угол. Создать обстановку и написать программу. Файлы сохранить в своей папке. Задание 3. Перевести исполнитель из клет- ки А в клетку В, закрасив при этом отмеченные клетки. Длина стен и расстояние между ними неизвестны. Создать обстановку и написать программу. Файлы сохранить в своей папке. -9-

p. 10

Задание 4. Необходимо перевести Робота из начального положения (◊) в точку A, закрашивая при этом указанные клетки поля. Размеры стен и расстояние между ними могут быть произвольны. Задание 5. На бесконечном поле есть ле- сенка. Количество ступенек может быть любым. Нижняя горизонтальная стена продолжается бесконечно влево, верхняя горизонтальная стена уходит бесконечно вправо. Робот находится где-то над нижней горизонтальной стеной. Закрасить клетки, расположенные вдоль вертикальной части ступенек (см. рис.). Конечное положение Робота любое. Создать обстановку и написать программу. Файлы сохранить в своей папке. Каждая ступенька имеет размер: 2 клетки по горизонтали и 2 клетки по вертикали. Урок 5. Разветвляющиеся алгоритмы. Команда «если _ то _ иначе _ все» Общий вид команды: если условие то действия 1 иначе действия 2 все Структура команды: после проверки условия выполняются действия 1, если условие истинно, в противном случае – действия 2. После этого выполняются команды, записанные после слова все. Ветка иначе может отсутствовать (неполное ветвление). В этом случае команда имеет вид: если условие то действия все Если условие не соблюдается, то сразу выполняются команды, записанные после служебного слова все. Пример 1. Создать программу, проводящую Робота через коридор произвольной длины. По пути Робот должен закрасить все клетки, у которых снизу нет стены. Количество отверстий неизвестно. - 10 -

p. 11

Пример 2. Перевести Робота в точку Б и закрасить клетки, отмеченные точкой. Длина стены и количество «тупиков» неизвестно. использовать Робот алг На Базу нач нц пока справа свободно вправо если сверху свободно то вверх закрасить вниз все кц вниз кон Пример** Подсчитать, сколько в коридоре закрашенных клеток (для выполнения надо разобрать дополнительно конструкции: цел сч | описание переменной целого типа сч:=сч+1 | увеличение переменной на 1 вывод сч | вывод значения переменной на экран Самостоятельная работа на компьютере: Создать обстановку и решить задачу. Задание 1. Составить алгоритм для прохождения роботом обстановки: Задание 2. Составить программу, в которой Робот преодолевает любое количество препятствий и доходит до стены. Препятствия можно располагать где угодно. - 11 -

p. 12

Задание 3. Закрасить клетки, отмеченные точками. Задание 4. использовать Робот алг На Базу нач закрасить нц пока справа свободно вправо если сверху свободно то вверх; закрасить; вниз иначе закрасить все кц вниз кон Задание 5. Закрасить клетки, расположенные рядом со стенами. Составить алгоритм, закрашивающий все клетки, находящиеся между двумя стенами. Какая стена находится левее неизвестно. использовать Робот алг между_стенами нач нц пока (не сверху свободно) или (не снизу свободно) вправо если (не сверху свободно) и (не снизу свободно) то закрасить все кц кон использовать Робот алг уч5 нач вправо нц пока не снизу свободно закрасить; вправо кц закрасить; вниз нц пока слева свободно закрасить; влево кц нц пока не слева свободно закрасить; вниз кц закрасить; влево; закрасить; вверх; нц пока сверху свободно закрасить; вверх кц нц пока не сверху свободно закрасить; влево кц кон Задание 6**. Робот находится в начале коридора. В коридоре имеются тупики сверху и снизу неизвестной длины, но их расположение не бывает напротив друг друга. Длина коридора также неизвестна. Написать алгоритм закрашивания всех тупиков и выхода из коридора. - 12 -

p. 13

использовать Робот алг тупики нач. нц пока (сверху стена) или (снизу стена) . . вправо. . если (сверху свободно) и (снизу стена) . . . то. . . . нц пока сверху свободно. . . . . вверх; закрасить. . . . кц. . . . нц пока снизу свободно. . . . . вниз. . . . кц. . все. . если (снизу свободно) и (сверху стена) . . . то. . . . нц пока снизу свободно. . . . . вниз; закрасить. . . . кц. . . . нц пока сверху свободно. . . . . вверх. . . . кц. . все; . кц; кон Команды, выделенные красным цветом необходимы, чтобы остановиться при выходе из коридора. Урок 6. Практическая работа №2. Циклические и разветвляющиеся алгоритмы для Робота. Решение заданий с использований КИМ ГИА. Замечание. При составлении алгоритмов задачу необходимо решить в общем виде, т.е. вид фигуры определен, но длины сторон, количество ступенек и другие параметры могут меняться. Программа должна работать для любой фигуры похожего вида! Задача 1. Создайте обстановку и напишите алгоритм, закрашивающий все клетки, находящиеся правее вертикальных участков стены. использовать Робот алг задача 1 нач вниз; вправо. нц пока сверху свободно. . вверх закрасить. кц. нц пока не сверху свободно. . вправо. кц. вверх. нц пока не слева свободно. . закрасить; вверх. кц кон - 13 -

p. 14

использовать Робот алг задача 2 нач. нц пока справа свободно. . вправо. кц. нц пока не справа свободно. . вверх. кц. вправо. нц пока не справа свободно. . закрасить вверх; вправо. кц кон Высота каждой ступени одна клетка, ширина – 2 клетки. Задача 2. Напишите алгоритм, закрашивающий все клетки, находящиеся над ступеньками. Задача 3. Закрасить все клетки, находящиеся над ступенями лестницы, спускающейся слева направо. использовать Робот алг задача 3 нач. нц пока снизу свободно. . вниз; влево; влево. кц. нц пока не слева свободно. . закрасить; вправо. . закрасить; вправо. . вниз. кц кон Задача 4. Закрасить клетки лабиринта. использовать Робот алг Лабиринт нач. вправо. нц пока справа стена. . закрасить; вверх. . закрасить; вверх. . закрасить; вправо. . закрасить; вниз. . закрасить; вниз. . закрасить; вправо. кц кон Задача 5** Исполнитель находится в произвольной клетке, но обязательно напротив стены (рисунок сверху). В результате необходимо закрасить клетки так, как показано на рисунке снизу. - 14 -

p. 15

использовать Робот алг Выход нач. нц пока справа свободно вправо; . кц. нц пока справа стена вниз; . кц. вправо; вверх. нц пока (слева стена и сверху свободно) или (сверху стена и справа свободно) или (справа стена и снизу свободно) или (снизу стена и слева свободно) . . если (слева стена) и (сверху свободно) . . . то. закрасить; вверх. . все. . если (сверху стена) и (справа свободно) . . . то. . закрасить; вправо. . все. . если справа стена и снизу свободно. . . то. . закрасить; вниз; . . все. . если снизу стена и слева свободно. . . то. . . закрасить; влево; . . все; . кц; кон Урок 7. Вспомогательные алгоритмы При решении некоторых задач удобно разбить их на более мелкие подзадачи, каждую из которых можно оформить как самостоятельный алгоритм. В этом случае сначала составляется так называемый основной алгоритм, в котором для решения подзадач используются вызовы вспомогательных алгоритмов, которые дописываются позднее. Такой способ решения называется методом последовательного уточнения. Он позволяет работать над проектом группе программистов, каждый при этом решает свою подзадачу. Команда выполнения вспомогательного алгоритма называется вызовом и записывается в теле основного алгоритма. В алгоритмическом языке сначала записывается основной алгоритм, ниже подряд записываются вспомогательные. Пример 1. Рассмотрим обстановку из урока №1. Робота надо перевести в клетку, обозначенную точкой. использовать Робот алг Коридор нач обход; обход; обход; обход; обход кон алг обход нач вверх; вверх; вправо вниз; вниз; вправо кон - 15 -

Образовательная программа элективного курса «Развитие алгоритмического мышления путем решения задач» (для учащихся 5-6 классов). Срок реализации: 4 месяца. Автор программы: И.Г. Шуплецов Рецензенты: методический совета МБОУ СОШ №13, 2012 год. Пояснительная записка А.П.Ершов описывал операционный стиль мышления – умение планировать структуру действий, необходимых для достижения цели, при помощи фиксированного набора средств. Алгоритмическое мышление предполагает понимание сути базовых алгоритмических конструкций: следование, ветвление, цикл, вызов, а также умение эффективно использовать эти структуры при составлении простых алгоритмов и строить сложные алгоритмы на основе простых. К структурным компонентам алгоритмического стиля мышления относятся: способность к формализации задачи, понимание и способность к реализации элементарных алгоритмических операций, осуществление выбора оптимального способа достижения цели. Умение строить алгоритмы актуально, с точки зрения предметной деятельности, во многих областях знаний и деятельности учеников. Выбор решения задач в среде КуМир обусловлен тем, что они позволяют наглядно демонстрировать алгоритмы, что развивает алгоритмические навыки и алгоритмическое мышление на основе наглядных действий исполнителей. Учащиеся 5-6 классов мотивированы к использованию исполнителей среды КуМир. Они для них просты в использовании и система команд этих исполнителей им понятна и легка в применении. Ученики увлеченно составляют простые алгоритмы и демонстрируют их учителю и друг другу. Наглядность действий исполнителей позволяет легко отслеживать выполнение алгоритма и вносить в него при необходимости коррективы. Курс «Развитие алгоритмического мышления путем решения задач» является практикоориентированным. Учащиеся самостоятельно осваивают среду КуМир и приемы решения задач на основе предложенных технологий и разобранных примеров. Учитель индивидуально помогает при возникновении затруднений и фиксирует решенные задачи, а также предлагает оптимальные варианты решения задач. Курс предлагается для изучения в школах, имеющих необходимое учебно-методическое и техническое оснащение. Он предназначен для учащихся 5 - 6 классов, имеющих элементарные навыки работы с операционной системой WINDOWS. Данный курс может быть продолжен курсом по основам программирования и дистанционным курсом по решению олимпиадных задач на сайте http://www.acmu.ru для заинтересованных учеников 78 классов. Тема «Алгоритмизация» изучается в 4 четверти 6 класса. Таким образом, ученики к этому времени смогут освоить использование среды КуМир и интуитивно-понятные алгоритмические конструкции, что позволит им успешно изучить теорию алгоритмизации и легко применить ее на практике. Курс «Развитие алгоритмического мышления путем решения задач» рассчитан на 17 часов, в ходе которых учащиеся смогут интуитивно, при решении задач на компьютере, освоить основные алгоритмические конструкции: следование, ветвление, цикл, вызов вспомогательного алгоритма, для эффективного составления алгоритмов. 1 Данный курс может стать первым шагом для дальнейшего изучения программирования и выбора направления обучения связанного с информационными технологоями. Цели и задачи курса Цель курса:  расширить знания учащихся по предмету «Информатика и ИКТ»;  развивать алгоритмическое мышление учащихся путем составления алгоритмов для решения задач. Задачи курса:  познакомить учащихся на практике со средой КуМир;  рассмотреть основные возможности наиболее популярных исполнителей «Робот» и «Чертежник»;  усвоить применение основных алгоритмических конструкций: следование, ветвление, цикл, вызов. Технология учебных занятий. Контроль Занятия проводятся в форме практических работ. В начале занятия (5 минут) учитель ставить перед учениками цель данного занятия и напоминает результаты каждого ученика, которые он достиг к этому времени и какие задачи он должен решать на данном уроке. Ученики составляют алгоритмы на компьютере, выполняют их с отслеживанием промежуточных результатов и сообщают учителю о решении задач. Ученики могут помогать друг другу в решении задач. Те задачи, которые не были решены на уроке, могут быть решены как домашняя работа и проверены на следующих занятиях. Учитель проверяет решенную задачу и фиксирует ее решение в журнале. В конце занятия (5 минут) отмечаются те ученики, у которых наибольшее количество решенных задач, выявляются трудности, возникшие у учеников, не решивших задачи и предлагаются и обсуждаются способы их преодоления. В начале и конце урока просматривается рейтинги всех учеников, что позволяет организовать соревнование между учениками. Календарно–тематический план № урока Тема урока 1 2 3 4 5 Знакомство с системой КуМир. Решение задач. Исполнитель Робот. Решение задач. Составление линейных алгоритмов. Решение задач. Составление линейных алгоритмов. Решение задач. Примеры вспомогательных алгоритмов. Составление вспомогательных алгоритмов. Решение задач. Составление вспомогательных алгоритмов. Решение задач. Пример циклического алгоритма. Составление циклических алгоритмов. Решение задач. 6 7 Количество часов 1 1 1 1 1 1 1 2 8 9 10 11 12 13 14 15 16 17 Пример разветвляющегося алгоритма. Составление разветвляющихся алгоритмов. Решение задач. Исполнитель Чертежник. Решение задач. Команда сместиться в точку. Составление линейных алгоритмов. Решение задач. Команда сместиться на вектор. Составление линейных алгоритмов. Решение задач. Команда сместиться на вектор. Составление линейных алгоритмов. Решение задач. Составление вспомогательных алгоритмов. Решение задач. Составление вспомогательных алгоритмов. Решение задач. Составление циклических алгоритмов. Решение задач. Составление циклических алгоритмов. Решение задач. Подведение итогов. Рейтинг учеников. Решение задач. Итого 1 1 1 1 1 2 1 1 1 17 Содержание учебного материала Знакомство с системой КуМир. Загрузка системы КуМир. Назначение исполнителя Робот. Система команд исполнителя Робот. Порядок написания алгоритма. Порядок создания поля Робота. Выполнение алгоритма. Отслеживание результатов выполнения Роботом алгоритма. Написание первого алгоритма. Составление линейных алгоритмов. Решение задач. Вспомогательный алгоритм. Два примера вспомогательных алгоритмов. Команда вызов вспомогательного алгоритма. Запись вспомогательного алгоритма. Два случая, в которых применяются вспомогательные алгоритмы. Составление вспомогательных алгоритмов. Решение задач. Циклический алгоритм. Пример циклического алгоритма. Цикл с заданным количеством повторений, команда Цикл N раз. Составление циклических алгоритмов. Решение задач. Разветвляющийся алгоритм. Два примера разветвляющегося алгоритма. Команда Если. Полная и неполная форма команды если. Условия в разветвляющемся алгоритме. Составление разветвляющихся алгоритмов. Решение задач. Исполнитель Чертежник. Система команд исполнителя чертежник. Написание алгоритма для исполнителя Чертежник. Назначение команды сместиться в точку. Пример алгоритма с командой сместиться в точку. Порядок создания чертежа и написания алгоритма для исполнителя Чертежник. Составление линейных алгоритмов. Решение задач. Исполнитель Чертежник. Пример алгоритма с командой сместиться на вектор. Порядок создания чертежа и написания алгоритма с командой сместиться на вектор для исполнителя Чертежник. Составление линейных алгоритмов. Решение задач. Пример вспомогательного алгоритма. Составление вспомогательных алгоритмов. Решение задач. Пример циклического алгоритма. Составление циклических алгоритмов. Решение задач. Предполагаемые результаты освоения курса Курс позволяет школьникам познакомиться: С загрузкой и элементами интерфейса программы КуМир. С порядком выполнения некоторых действий в программе КуМир. С назначением исполнителя Робот. С назначением исполнителя Чертежник. 3 С основными алгоритмическими конструкциями: следование, ветвление, цикл, вызов. С порядком создания и выполнения алгоритмов. С вычислением значения векторов по клеточкам, используя проекции на оси координат. В процессе обучения школьники приобретают навыки: Создания и выполнения алгоритмов. Сохранения и загрузки алгоритмов. Применения различных алгоритмических конструкций для эффективного решения задач. Построения чертежей на координатной плоскости. Условия реализации курса 1. 2. 3. 4. 5. 6. 7. Компьютерный класс 12 компьютеров. Локальная сеть. Демонстрационный экран. Принтер. Бумага для принтера А4. Среда КуМир – свободно распространяемое программное обеспечение. Дидактические материалы. Список литературы Леонов А.Г. Освой КуМир за 6 часов. - Москва: Информатика, приложение к газете 1 сентября, № 24, 2010 г., № 2, 2011 г., Кушниренко А.Г. Основы информатики и вычислительной техники: Проб. учеб. для сред. учеб. заведений А.Г. Кушниренко, Г.В. Лебедев, Р.А. Сворень – 2-е изд. – М.: Просвещение, 1991. – 224 с.: ил. Приложение 1 Исполнитель «Робот» Линейные алгоритмы Исполнитель «Робот» перемещается в клетчатом поле 15 на 10 клеток и закрашивает клетки. Робот умеет выполнять следующие команды СКИ: вверх, вниз, влево, вправо, закрасить. Загрузите программу КуМир для исполнителя «Робот» 1. Способ – открыть ярлык на рабочем столе. 2. Способ – Компьютер диск C: папка School папка KumirWin файл kumir.exe (приложение). 4 Пример 1 1. Наберите с клавиатуры в КуМире программу Пример1. 2. Вызовите Меню Инструменты команда Редактировать стартовую обстановку Робота. 3. Вызовите меню Помощь обстановки прочитайте действия выполняемые при редактировании обстановки, запомните их. 4. Очистите обстановку и поместите Робота в центр поля. Закройте обстановку, не сохраняя. 5. Вызовите меню Выполнение команда ШАГ (F8 – быстрая клавиша). 6. Вызовите поле Робота, меню Робот команда Показать окно Робота. 7. Нажимайте клавишу F8 до конца программы (пока не исчезнет зеленая полоса). Должен получиться следующий результат. Задача 1 Составить программу, выполнив которую, Робот закрасит клетки, расположенные в шахматном порядке с длиной стороны 3 клетки. 5 Задача 2 Составить программу, выполнив которую, Робот закрасит клетки, расположенные в виде ромба с длиной стороны 4 клетки. Задача 3 Составить программу, выполнив которую, Робот закрасит клетки, расположенные в виде пирамиды высотой 4 клетки и вернуться в исходное положение. Задача 4 Составить программу, выполнив которую, Робот закрасит клетки так, чтобы получился интересный рисунок (например, смайлик). 6 Задача 5 Робот находится в начале горизонтального коридора (клетка А). Перевести Робота в конец коридора (клетка Б). Буквы А и Б в обстановке Робота не ставятся. Задача 6 Робот находится перед входом в вертикальный коридор. Робот должен пройти по коридору и выйти из него на одну клетку. Робот должен закрасить клетки, по которым он проходит. Задача 7 В обстановке Робота создайте лабиринт с одним выходом. Поместите Робот в клетку, из которой он будет выходить из лабиринта. Составьте программу, которая выведет Робота из лабиринта. Задача 8 Робот должен перейти из клетки А в клетку Б и закрасить клетки обозначенные точками. 7 Важно: все алгоритмы, которые вы составили, являются линейными, т.к. команды в них следуют одна за другой от начала и до конца алгоритма. 8

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

Итак, что такое цикл ? Представьте, что мы находимся на уроке физической культуры и перед нами стоит задача сделать 7 приседаний . Это задание можно оформить в виде линейного алгоритма и тогда оно будет выглядеть примерно так:

сделай приседание

сделай приседание

сделай приседание

сделай приседание

сделай приседание

сделай приседание

сделай приседание

Т. е мы повторили команду сделай приседание 7 раз. А есть ли смысл писать 7 одинаковых команд? Может проще дать команду сделай 7 приседаний ? Конечно проще и правильнее. Это и есть цикл . Вы можете сами вспомнить примеры циклов из жизни — их довольно много.

Таким образом линейный алгоритм , где повторяются одни и те же команды мы можем оформить в виде циклического алгоритма — примерно так:

повторяй 7 раз

сделай приседание

конец цикла

Вот так, на придуманном нами языке мы оформили цикл. У исполнителя Робот тоже есть возможность записывать циклы. Причем, циклы бывают разные . Тот вариант, который мы только что рассмотрели называется цикл со счетчиком или цикл с параметром .

Виды циклов.

Цикл со счетчиком.

Цикл со счетчиком применяется когда заранее известно сколько повторений необходимо сделать. В примере выше с приседаниями именно такой случай.

Для того, чтобы написать цикл со счетчиком для исполнителя необходимо знать его синтаксис. А он такой:

нц <количество повторений > раз

<команда 1>

<команда 2>

<команда n>

Здесь мы должны указать количество повторений (число) и команды, которые будут повторяться. Команды, которые повторяются в цикле называют телом цикла .

Давайте рассмотрим это на примере.

Изначально Робот находился в левой верхней клетке.

Давайте для начала решим задачу линейно. В этом случае мы будет закрашивать текущую клетку и перемещаться на 1 клетку вправо и программа будет выглядеть так:
использовать Робот
алг
нач

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

Как видим, команды закрасить и вправо повторяются 7 раз. Давайте теперь перепишем программу с использованием цикла. Кстати, чтобы вставить цикл в свою программу можно в меню Вставка выбрать пункт нц-раз-кц или нажать одну из комбинаций клавиш Esc, Р (русская буква Р) или Esc, H (латинская буква H). Причем клавиши надо нажимать последовательно — сначала Esc, отпустить ее и только потом Р или H.

Так вот, наша программа с циклом будет выглядеть так:

использовать Робот

нц 7 раз

закрасить

вправо

Если мы ее запустим, то увидим, что в результате получится тоже самое — 7 закрашенных клеток. Однако программа стала короче и значительно грамотней с алгоритмической точки зрения!

В качестве разминки и закрепления предлагаю самостоятельно написать программу для Робота, которая нарисует квадрат со стороной 7 клеток. Естественно, используя цикл. Жду решения в комментариях.

Цикл с условием.

При решении задачи 19 ГИА по информатике с Роботом использовать цикл со счетчиком не получится. Так как там поле, как правило, бесконечное и стены не имеют конкретной длины. Поэтому мы не сможем определить количество повторений для цикла со счетчиком. Но не беда — нам поможет цикл с условием .

Вернемся к физкультуре и изменим задачу. Ведь кто-то может и не сделать 7 приседаний, а другой способен сделать 27. Можно ли учесть это при создании цикла? Конечно. Только теперь мы будем использовать не счетчик (количество повторений), а условие. К примеру, пока не устал, делай приседания. В этом случае человек будет делать не конкретное число приседаний, а приседать до тех пор, пока не устанет. И наш цикл на абстрактном языке примет такой вид:

пока не устал

сделай приседание

конец цикла

Слова не устал в нашем случае — это условие. Когда оно истинно, цикл выполняется. Если же оно ложно (устал) тело цикла не будет выполнено. У исполнителя Робот есть несколько условий

сверху свободно

снизу свободно

слева свободно

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

сверху стена

снизу стена

слева стена

справа стена

Но в условии задачи 19 ГИА указаны только первые 4. Так что будем пользоваться только ими.

Теперь давайте решим следующую задачу для Робота — нарисовать вертикальную линию от левой до правой границы поля использую цикл с условием. Изначально Робот находится в левом верхнем углу.

Давайте сначала сформулируем словесный алгоритм — т. е. опишем словами что нужно делать Роботу. Этот алгоритм будет звучать примерно так:

«Пока справа свободно делай шаг вправо и закрашивай клетку »

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

Исходный код нашей программы для Робота будет примерно такой:

использовать Робот

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

вправо

закрасить

В результате выполнения этой программы мы увидим вот такую картину:







2024 © phonebdmoscow.ru.