900.38K
Category: programmingprogramming

Среда программирования Кумир

1.

Робот
Гайлит Ирина Владимировна
учитель информатики
ГБОУ Гимназия № 11, Санкт-Петербург

2.

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

3.

Исполнитель Робот умеет перемещаться на плоскости,
разбитой на клетки.
Между соседними (по сторонам) клетками может
стоять стена, через которую Робот пройти не может.
СКИ Робота: четыре команды — это команды-приказы:
вверх вниз влево вправо
При выполнении любой из этих команд Робот
перемещается на одну клетку соответственно:
вверх ↑
вниз ↓
влево ←
вправо →
Если Робот получит команду передвижения сквозь
стену, то он разрушится.
Также у Робота есть команда закрасить, при которой
закрашивается клетка, в которой Робот находится в
настоящий момент.

4.

1.
Выбор исполнителя:
Вставка – использовать Робот

5.

2.
Создание стартовой обстановки:
Перед началом выполнения программы необходимо
задать исполнителю Робот стартовую обстановку. Это
значит установить Робота в нужную позицию, расставить
стены, закрасить нужные клетки и т. п.
Выполнить Инструменты – Редактировать стартовую
обстановку Робота

6.


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

7.


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

8.


Команды для Робота выбираются из меню Вставка

9.

Для запуска программы на выполнение:
Выполнение – Выполнить непрерывно или кнопка

10.


Чтобы увидеть результат выполнения программы
Показать окно Робота

11.

Цветок

12.

Для повторения последовательности команд можно
использовать цикл «пока», имеющий следующий вид:
нц пока условие
последовательность команд
Кц
справа свободно
слева свободно
сверху свободно
снизу свободно
Простое условие —
не справа свободно
не слева свободно
не сверху свободно
не снизу свободно
«не справа свободно» означает, что слева свободно, а
справа стена
Условие может быть и сложное. Например:
Справа свободно или снизу свободно

13.

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

14.

Если условия и команды набраны верно, они будут
подсвечены синим цветом. На поля выводится результат
выполнения заданного условия

15.

Результат выполнения программы

16.

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

17.

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

18.

Исходная обстановка

19.

Код программы
На поля выводятся
результаты
выполнения заданных
условий

20.

Результат выполнения программы

21.

Тестируем программу

22.

23.

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

24.

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

25.

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

26.

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

27.

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