Ошибки 

Задания для исполнителя робот в системе кумир. Исполнитель Робот. Простые команды. Подготовка к ЕГЭ по информатике

КуМир (К омплект У чебных МИР ов) — это свободно распространяемая кроссплатформенная русскоязычная система программирования, предназначенная для начального обучения основам алгоритмизации. Скачать КуМир 1.9 можно на сайте разработчиков или на официальном сайте проекта .

Достоинства :

  • свободно распространяемая среда (лицензия GPL 2.0);
  • кроссплатформенность (Windows, Linux );
  • поддержка со стороны российских разработчиков (НИИСИ РАН);
  • русскоязычные команды языка программирования;
  • развитые возможности отладки программ;
  • автоматическое выравнивание, показывающее структуру программы;
  • возможность строить заготовки задач с автоматической проверкой;
  • возможность управления исполнителями из программы;
  • возможность подключения новых исполнителей.

Недостатки: :

  • сложно мотивировать учащихся на изучение языка, который нигде не применяется;
  • очень медленная работа интерпретатора (обещают существенно ускорить в версии 2.0, которая сейчас разрабатывается);
  • нельзя менять значения аргументов внутри вспомогательных алгоритмов (например, в реализации алгоритма Евклида как функции приходится заводить две лишние переменные);
  • нельзя вызывать функцию как процедуру, игнорируя ее результат (например, когда результат функции — код возврата и в данном случае он меня не интересует);
  • неудобная и неполная справочная система;
  • нет форматного вывода на консоль и в файл, как в Паскале (типа вывод x:4); это нужно, например, чтобы вывести на экран матрицу ровными столбиками.

Планируется, что КуМир будет одной из систем программирования, разрешенных при проведении компьютерного варианта ЕГЭ по информатике (подробности см. в блоге).

На этой странице представлены методические разработки автора по использованию среды КуМир в 6-8 классах общеобразовательной школы.

Новости теперь и в Telegram-канале

2 апреля 2019 г.
Размещена работа Е.В. Дрожжиной «Алгоритмика на Кумире. Сборник заданий по программированию» (Белгород, 2016).

19 декабря 2017 г.
Добавлен практикум для подготовки к ОГЭ по информатике (задача 20.1 с Роботом).

1 марта 2013 г.
Добавлены материалы к докладу «Практикумы с автоматической проверкой решений в среде КуМир» на V Международном педагогическом марафоне учебных предметов (28 февраля — 1 марта 2013 года, г. Великие Луки).

27 января 2013 г.
Добавлен практикум «Задачи C2» для подготовки к ЕГЭ по информатике.

12 октября 2012 г.
Добавлен доклад «Программирование по-русски» на Седьмой межрегиональной научно-практической конференции «Развитие региональной образовательной информационной среды» .

11 апреля 2012 г.
Добавлена контрольная работа по исполнителю Робот (в форме курса).

Лицензионное соглашение

  1. 1) публикация материалов в любой форме, в том числе размещение материалов на других Web-сайтах;
  2. 2) распространение неполных или измененных материалов;
  3. 3) включение материалов в сборники на любых носителях информации;
  4. 4) получение коммерческой выгоды от продажи или другого использования материалов.

Скачивание материалов означает, что вы приняли условия этого лицензионного соглашения.

ОГЭ по информатике

Практикум для подготовки к ОГЭ по информатике содержит 7 разделов, представляющих разные типы задач:

  1. Закрытый коридор.
  2. Одна стенка.
  3. Один ряд, много стенок.
  4. Два ряда.
  5. Стенки с проходами.
  6. Лестницы.
  7. Разные сложные задачи.

Материалы курса:

Массивы

Практикум по обработке массивов состоит из двух частей. Первая часть («Массивы-1») содержит 6 разделов:

  1. Заполнение массива.
  2. Обработка всех элементов массива.
  3. Минимум и максимум.
  4. Подсчёт элементов массива.
  5. Суммы и произведения элементов.
  6. Поиск в массиве.

Вторая часть («Массивы-2») содержит 6 разделов:

  1. Реверс массива.
  2. Циклический сдвиг элементов.
  3. Отбор элементов массива по условию.
  4. Сортировка методом пузырька.
  5. Сортировка методом выбора.
  6. Двоичный поиск.

Материалы курса:

  • Практикум «Массивы-1»
  • Контрольная работа по первой части курса (тоже в формате курса:-).
  • Учителя могут получить решения электронной почте .

Символьные строки

Практикум по обработке символьных строк содержит 5 разделов:

  1. Работа с отдельными символами.
  2. Замена символов.
  3. Подсчёт символов.
  4. Разбор символьных строк.
  5. Вычисление арифметических выражений.

Материалы курса:

  • Практикум «Строки» для использования в среде КуМир (версия не ниже 1.8).
  • Учителя могут получить решения всех задач практикума. Для этого нужно связаться с автором по электронной почте .

Функции

Практикум по составлению алгоритмов-функций содержит 6 разделов:

  1. Функции с одним параметром.
  2. Функции с несколькими параметрами.
  3. Обработка символьных строк.
  4. Логические функции.
  5. Обработка массивов.
  6. Рекурсивные функции.

Материалы курса:

  • Практикум «Функции» для использования в среде КуМир (версия не ниже 1.8).
  • Учителя могут получить решения всех задач практикума. Для этого нужно связаться с автором по электронной почте .

Подготовка к ЕГЭ по информатике

Практикум по решению задач C2 (см. также материалы для подготовки к ЕГЭ) содержит 5 разделов:

  1. Максимумы и минимумы.
  2. Подсчёт и поиск элементов.
  3. Суммы, средние и произведения.
  4. Последовательности.
  5. Матрицы.

Материалы курса:

  • Практикум «Задачи C2» для использования в среде КуМир (версия не ниже 1.8).
  • Учителя могут получить решения всех задач практикума. Для этого нужно связаться с автором по электронной почте .

Водолей

Курс по исполнителю Водолей состоит из 6 уроков:

  • Урок 0. Знакомство с исполнителем Водолей. Управление с помощью пульта.
  • Урок 1. Составление программы для управления Водолеем.
  • Урок 2. Циклы «N раз».
  • Урок 3.
  • Урок 4. Переменные.
  • Урок 5. Ветвления.

Материалы курса:

Робот

Курс по исполнителю Робот состоит из 12 уроков:

  • Урок 1. Знакомство с исполнителем Робот. Линейные алгоритмы.
  • Урок 2. Циклы «N раз».
  • Урок 3. Циклы «N раз» (решение задач).
  • Урок 4. Вложенные циклы.
  • Урок 5. Циклы с условием (циклы «пока»).
  • Урок 6. Ветвления.
  • Урок 7. Сложные условия.
  • Урок 8. Вспомогательные алгоритмы.
  • Урок 9. Переменные.
  • Урок 10. Алгоритмы с результатом (алгоритмы-функции).
  • Урок 11. Циклы с переменной.
  • Урок 12. Алгоритмы с параметрами.

Материалы курса:

  • Презентация
Управление исполнителем Робот в системе КУМИР

Робот существует в определенной обстановке (прямоугольном клетчатом поле). Между некоторыми клетками поля могут быть расположены стены. Некоторые клетки могут быть закрашены (рис. 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


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

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

Задания для тренировки

1) Исполнитель КУЗНЕЧИК живёт на числовой оси. Начальное положение КУЗНЕЧИКА – точка 0. Система команд Кузнечика:

Вперед 4 – Кузнечик прыгает вперед на 4 единицы, Назад 3 – Кузнечик прыгает назад на 3 единицы.

Какое наименьшее количество раз должна встретиться в программе команда «Назад 3», чтобы Кузнечик оказался в точке 27?

2) Исполнитель КУЗНЕЧИК живёт на числовой оси. Начальное положение КУЗНЕЧИКА – точка 0. Система команд Кузнечика:

Вперед 6 – Кузнечик прыгает вперёд на 6 единиц,

Назад 4

Какое наименьшее количество раз должна встретиться в программе команда «Назад 4», чтобы Кузнечик оказался в точке 28?

3) Исполнитель КУЗНЕЧИК живёт на числовой оси. Начальное положение КУЗНЕЧИКА – точка 0. Система команд Кузнечика:

Вперед 5 – Кузнечик прыгает вперёд на 5 единиц,

Назад 3 – Кузнечик прыгает назад на 3 единицы.

Какое наименьшее количество раз должна встретиться в программе команда «Назад 3», чтобы Кузнечик оказался в точке 21?

4) Исполнитель КУЗНЕЧИК живёт на числовой оси. Начальное положение КУЗНЕЧИКА – точка 0. Система команд Кузнечика:

Вперед 7

Назад 5

Какое наименьшее количество раз должна встретиться в программе команда «Назад 5», чтобы Кузнечик оказался в точке 19?

5) Исполнитель КУЗНЕЧИК живёт на числовой оси. Начальное положение КУЗНЕЧИКА – точка 10. Система команд Кузнечика:

Вперед 7 – Кузнечик прыгает вперёд на 7 единиц,

Назад 4 – Кузнечик прыгает назад на 4 единицы.

Какое наименьшее количество раз должна встретиться в программе команда «Назад 4», чтобы Кузнечик оказался в точке 43?

6) Исполнитель КУЗНЕЧИК живёт на числовой оси. Начальное положение КУЗНЕЧИКА – точка 15. Система команд Кузнечика:

Вперед 17 – Кузнечик прыгает вперёд на 17 единиц,

Назад 6 – Кузнечик прыгает назад на 6 единиц.

Какое наименьшее количество раз должна встретиться в программе команда «Назад 6», чтобы Кузнечик оказался в точке 36?

7) Исполнитель КУЗНЕЧИК живёт на числовой оси. Начальное положение КУЗНЕЧИКА – точка 20. Система команд Кузнечика:

Вперед 3 – Кузнечик прыгает вперёд на 3 единицы,

Назад 5 – Кузнечик прыгает назад на 5 единиц.

За какое наименьшее количество команд можно перевести Кузнечика в точку (-4)?

«Вперед 4» (Кузнечик прыгает вперед на 4 единицы),

Какое наименьшее количество раз должна встретиться в программе команда «Назад 3», чтобы Кузнечик оказался в точке 31?

9) Исполнитель Кузнечик живет на числовой оси. Начальное положение - точка 0. Система команд кузнечика:

Какое наименьшее количество раз должна встретиться в программе команда «Назад 4», чтобы Кузнечик оказался в точке 31?

10)

«Вперед 3» (Кузнечик прыгает вперед на 3 единицы),

«Назад 4» (Кузнечик прыгает назад на 4 единицы).

Какое наименьшее количество раз должна встретиться в программе команда «Назад 4», чтобы Кузнечик оказался в точке 32?

11) Исполнитель Кузнечик живет на числовой оси. Начальное положение - точка 0. Система команд кузнечика:

«Вперед 5» (Кузнечик прыгает вперед на 5 единиц),

«Назад 3» (Кузнечик прыгает назад на 3 единицы).

Какое наименьшее количество раз должна встретиться в программе команда «Назад 3», чтобы Кузнечик оказался в точке 33?

12) Исполнитель Кузнечик живет на числовой оси. Начальное положение - точка 0. Система команд кузнечика:

«Вперед 6» (Кузнечик прыгает вперед на 6 единиц),

«Назад 5» (Кузнечик прыгает назад на 5 единиц).

Какое наименьшее количество раз должна встретиться в программе команда «Назад 5», чтобы Кузнечик оказался в точке 33?




Исполнитель Робот Система команд исполнителя Робот Команды перемещения: вверх, вниз, влево, вправо Робот перемещается на одну клетку вверх, вниз, влево, вправо. Команда закрасить – закрашивает клетку, в которой стоит Робот. Проверка истинности условия: сверху свободно, снизу свободно, слева свободно, справа свободно Робот проверяет истинность условия отсутствия стены у той клетки, где находится Робот. Можно использовать запись составных условий, образованных логическими операциями И, ИЛИ, НЕ.




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


Исполнитель Робот Команды меню Робот Показать поле Робота Делает видимым окно наблюдения за Роботом. Напечатать обстановку Создает файл в формате PDF, изображающий текущую обстановку в цветном или в черно-белом варианте. Сохранить обстановку в файл Создает текстовый файл с описанием обстановки во внутреннем формате *.fil. Этот файл в дальнейшем может быть загружен в качестве стартовой обстановки (команда Сменить стартовую обстановку) или при редактировании стартовой обстановки (команда Открыть окна редактирования стартовой обстановки). Сменить как стартовую обстановку Устанавливает новое имя файла стартовой обстановки (с помощью стандартного диалога) и загружает новую стартовую обстановку. Вернуться в стартовую обстановку Делает стартовую обстановку текущей.


Исполнитель Робот Изображение текущей обстановки в окне наблюдения Изображение текущей обстановки всегда полностью помещается в рабочем поле окна наблюдения за Роботом. Фон рабочего поля – зеленый. Закрашенные клетки – серые. Между клетками – тонкие черные линии. Стены Изображаются толстыми желтыми линиями. В клетке рабочего поля окна наблюдения Робот изображается ромбиком.


Исполнитель Робот Пример 1. Составим алгоритм с именем «Ход конем», что бы Роботу попасть из точки А в точку Б (Рис.3). Алгоритм имеет вид (Рис. 4.). После его исполнения Робот переместиться в нужную точку (Рис.5). Алгоритм, записанный на языке исполнителя называется программой. Рис.3Рис.4 Рис.5




Программа Кумир

Исполнитель Робот


Кто такой исполнитель Робот?

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

Настройка среды Кумир для исполнителя Робот

  • Запущенная программа Кумир выглядит так.

Стартовая обстановка Робота

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

Нажмите на Редактировать обстановку



Исполнитель Робот. Простые команды.

  • вверх
  • вниз
  • влево
  • вправо
  • закрасить

Результат выполнения этих команд понятен из их названия:

  • вверх - переместить Робота на одну клетку вверх
  • вниз - переместить Робота на одну клетку вниз
  • влево - переместить Робота на одну клетку влево
  • вправо - переместить Робота на одну клетку вправо
  • закрасить - закрасить текущую клетку (клетку в которой находится Робот).

Пример алгоритма

  • Сначала необходимо написать фразу:
  • использовать Робот

Если известно сколько клеток нужно закрасить, то алгоритм решения будет следующим!


Задание №1

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

Циклы

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

нц раз

кц

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



Задание №2

  • Напишите программу для решения следующей задачи, используя цикл со счетчиком

  • 2. Цикл с условием- пока условие истинно-цикл выполняется, если ложно-то не выполняется
  • У исполнителя Робот есть несколько условий

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

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

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

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

сверху стена

снизу стена

слева стена

справа стена

  • Можно использовать частицы: НЕ, И, ИЛИ

Структура цикла с условием

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

вправо

закрасить

кц



Задание №3

  • Напишите программу для решения следующей задачи, используя цикл с условием:

Задание №4

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



Решение задач:

  • 2. Робота надо перевести из стартового положения в конечное, закрашивая стенки


Задание №5

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

Ответ на задание №5

  • нц пока не (снизу свободно)

закрасить

Начало цикла (нц) и условие (пока не(снизу свободно)) - пишутся на одной строчке.



Конструкция если

  • сверху свободно снизу свободно слева свободно справа свободно
  • Эти команды можно использовать вместе с условием «если» , имеющим следующий вид:
  • если условие то
  • последовательность команд
  • Например, для передвижения на одну клетку вправо, если справа нет стенки, и закрашивания клетки можно использовать такой алгоритм:
  • если справа свободно то
  • вправо
  • закрасить

Задание №7

Длины стен неизвестны.


Ответ на задание №7

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

за­кра­сить

впра­во

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

впра­во

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

за­кра­сить

впра­во

пока не спра­ва сво­бод­но

за­кра­сить

вниз

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

вниз

пока не спра­ва сво­бод­но

за­кра­сить

вниз


Задание №8

Длины стен неизвестны.

В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны.


Ответ на задание №8

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

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

за­кра­сить

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

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

за­кра­сить

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

за­кра­сить

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

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

за­кра­сить


Задание №9

Длины стен неизвестны.

В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны.


Ответ на задание №9

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

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

за­кра­сить

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

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

за­кра­сить

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

за­кра­сить

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

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

за­кра­сить


Задание №10

Длины стен неизвестны.

В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны.


Ответ на задание №10

пока с­ле­ва сво­бод­но

пока не слева сво­бод­но

за­кра­сить

пока слева сво­бод­но

пока не с­ле­ва сво­бод­но

за­кра­сить

пока не спра­ва сво­бод­но

за­кра­сить

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

пока не спра­ва сво­бод­но

за­кра­сить


Задание №11

Длины стен неизвестны.

В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны.


Ответ на задание №11

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

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

за­кра­сить

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

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

за­кра­сить


Задание №12

На бес­ко­неч­ном поле име­ет­ся лест­ни­ца. Сна­ча­ла лест­ни­ца спус­ка­ет­ся вниз спра­ва на­ле­во, затем спус­ка­ет­ся вниз слева на­пра­во. Вы­со­та каж­дой сту­пе­ни - одна клет­ка, ши­ри­на - две клет­ки. Робот на­хо­дит­ся спра­ва от верх­ней сту­пе­ни лест­ни­цы. Ко­ли­че­ство сту­пе­нек, ве­ду­щих влево, и ко­ли­че­ство сту­пе­нек, ве­ду­щих впра­во, не­из­вест­но. На ри­сун­ке ука­зан один из воз­мож­ных спо­со­бов рас­по­ло­же­ния лест­ни­цы и Ро­бо­та (Робот обо­зна­чен бук­вой «Р»).


Ответ на задание №12

Дви­га­ем­ся вниз под лест­ни­цей спра­ва на­ле­во, пока не дой­дем до стыка лест­ниц:

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

вниз

влево

влево

Дви­га­ем­ся вниз до конца спус­ка­ю­щей­ся лест­ни­цы, за­кра­ши­вая нуж­ные клет­ки на пути:

нц пока не слева сво­бод­но

за­кра­сить

впра­во

за­кра­сить

впра­во

вниз



Ответ на задание №13

нц пока слева сво­бод­но

за­кра­сить

влево

вверх

нц пока не слева сво­бод­но

за­кра­сить

вверх


Задание №14

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


Ответ на задание №14

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

впра­во

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

вверх

за­кра­сить

нц пока слева сво­бод­но

влево

за­кра­сить



Ответ на задание №15

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

за­кра­сить

впра­во

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

за­кра­сить

вниз

за­кра­сить

пока не (снизу сво­бод­но)

влево

вниз

пока не (спра­ва сво­бод­но)

за­кра­сить

вниз

за­кра­сить

впра­во

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

за­кра­сить

впра­во



Ответ на задание №16

пока не спра­ва сво­бод­но

за­кра­сить

вниз

за­кра­сить

впра­во

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

за­кра­сить

впра­во

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

вверх

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

за­кра­сить

впра­во

пока не спра­ва сво­бод­но

за­кра­сить

вниз