Урок по информатике «Исполнитель Робот в среде КУМИР. Подготовка к ГИА по информатике» (7–11 класс)

6
1
Материал опубликован 17 October 2019 в группе
Исполнитель Робот. Подготовка к ГИА по информатике. Исполнитель Робот в среде КУМИР


Язык КУМИР - универсальный язык программирования, его прототипом послужил "школьный язык программирования", разработанный А.П. Ершовым в первой половине 80-х годов ХХ века.

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

В то же время КУМИР является учебной системой. В неё встроено несколько графических исполнителей, действия которых визуализируются на их "игровом поле" или арене.

t1571320418aa.jpg





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

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

У Робота есть пять команд-приказов:

вверх

вниз

влево

вправо

закрасить

При выполнении одной из первых четырех команд Робот перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если Робот получит команду передвижения через стену, то он разрушится (произойдет отказ).

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

Задача 1.

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



Исполнитель Робот. Подготовка к ГИА
DOCX / 781.62 Кб
























































Р












































































































































































































































































































Р

















































































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

алг

нач

вниз

вниз

вправо

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

закрасить

вправо

кц

вниз

влево

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

закрасить

влево

кц

кон

t1571320418ab.png

t1571320418ac.png







Задача 2.

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

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










Р







































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



Результат.









Р







































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



Выполнение

Открыть программу Кумир. Создать новую программу – Программа, новая программа.

использовать Робот
алг
нач
.
кон
2. Создай СТАРТОВУЮ ОБСТАНОВКУ ДЛЯ РЕШЕНИЯ ЗАДАЧИ – смотри рисунок ниже

Аt1571320418ad.png ) Создай 1 версию обстановки – Инструменты, Создать стартовую обстановку для Робота.

Сохрани – выбери в меню Обстановка, Сохранить как, выбери папку своего класса и сохрани, имя файла – 1 вариант (1 версия)



Напиши алгоритм – он должен быть универсальным, правильно работать и для 1 версии и для второй версии стартовой обстановки

использовать Робот
алг
нач
.
| Спуститься вниз вдоль стены
.
нц пока снизу свободно
. .
вниз
.
кц
.
| Закрасить клетки сверху до прохода
.
нц пока не снизу свободно
. .
закрасить
. .
вправо
.
кц
.
| пройти проход независимо сколько он клеток
.
нц пока снизу свободно
. .
вправо
.
кц
.
| Закрасить клетки сверху после прохода
.
нц пока не снизу свободно
. .
закрасить
. .
вправо
.
кц
.
| спуститься вниз и влево
.
вниз
.
влево
.
| Закрасить клетки снизу справа налево до прохода
.
нц пока не сверху свободно
. .
закрасить
. .
влево
.
кц
.
| пройти проход справа налево независимо сколько он клеток
.
нц пока сверху свободно
. .
влево
.
кц
.
| Закрасить клетки снизу справа налево после прохода
.
нц пока не сверху свободно
. .
закрасить
. .
влево
.
кц
кон







































Проверить выполнение алгоритма (F9) на данной стартовой обстановки.

t1571320418ae.png



t1571320418af.gif

Задача 3. 

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











































































































Р














































t1571320418af.gif





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


























































































































Р































Конечное положение Робота значения не имеет.

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

перевести Робота в исходное положение — крайнюю левую клетку, примыкающую к стене сверху;

двигаясь слева направо, закрасить через одну все клет­ки, примыкающие к стене сверху.



t1571320418ag.png

Задача 4. 

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


























































































































Р






















































































































































































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

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

алг

нач

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

. . влево

. кц

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

. . вверх

. кц

. влево; вниз

. нц пока справа не свободно или слева не свободно

. . если слева свободно и справа не свободно

. . . то

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

. . . . . закрасить; влево

. . . . кц

. . все

. .

. . закрасить;

. . вниз

. . если справа свободно и слева не свободно

. . . то

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

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

. . . . кц

. . . . закрасить

. . . .

. . все

. . вниз

. .

. кц

.

кон



t1571320418ah.png



Задача 5. 

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













































































































Р














































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


























































































































Р































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

перевести Робота в исходное положение — крайнюю левую клетку, примыкающую к стене сверху;

двигаясь слева направо, закрасить через одну все клет­ки, примыкающие к стене сверху.


Напишите алгоритм:
алг
нач
 нц пока не
 (снизу свободно)
  влево
 кц
 вправо
 нц пока не (снизу свободно)
  закрасить
  вправо
  вправо
 кц
кон

t1571320418ai.png

Задача 6. 

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

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

алг

нач

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

. . вниз

. кц

. нц пока (слева свободно)

. . влево

. кц

. нц пока (справа свободно)

. . закрасить

. . вправо

. . закрасить

. кц

кон



t1571320418aj.png



t1571320418ak.png
Задача 7. 

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

использовать Робот
алг нач
. нц пока (снизу свободно)
. . вниз
. кц
. нц пока (слева свободно)
. . влево
. кц
. нц пока (справа свободно)
. . закрасить
. . вправо
. . закрасить
. кц
. нц пока (сверху свободно)
. . вверх
. . закрасить
. кц
. нц пока (слева свободно)
. . влево
. . закрасить
. кц
. нц пока (снизу свободно)
. . вниз
. . закрасить
. кц
кон
t1571320418al.png



t1571320418am.png



Исполнитель Робот в PascalABC.NET


В версию Programming Taskbook для локально устанавливаемого PascalABC.NET (не сетевой версии) входит ГРИС Робот.

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

Исполнитель Робот и поле, на котором он работает, отображаются следующим образом:

t1571320418an.png

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

Команды исполнителя Робот содержатся в модуле Robot:

Right – перемещает Робота вправо;

Left – перемещает Робота влево;

Up – перемещает Робота вверх;

Down – перемещает Робота вниз;

Paint – закрашивает текущую ячейку;

WallFromLeft – возвращает True если слева от Робота стена;

WallFromRight – возвращает True если справа от Робота стена;

WallFromUp – возвращает True если сверху от Робота стена;

WallFromDown – возвращает True если снизу от Робота стена;

FreeFromLeft – возвращает True если слева от Робота свободно;

FreeFromRight – возвращает True если справа от Робота свободно;

FreeFromUp – возвращает True если сверху от Робота свободно;

FreeFromDown – возвращает True если снизу от Робота свободно;

CellIsPainted – возвращает True если ячейка, в которой находится Робот, закрашена;

CellIsFree – возвращает True если ячейка, в которой находится Робот, не закрашена.



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

uses Robot; 
    begin Task('c1'); 
end.

Здесь Task — процедура, содержащаяся в модуле Robot и вызывающая задание с указанным именем.

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

a – вводные задания;
– c – цикл с параметром;
– if – логические выражения;
– w – циклы с условием;
– сif – циклы + логические выражения;
– count – переменные-счетчики;
– cc – вложенные циклы;
– p – процедуры без параметров;
– pp – процедуры с параметрами.

Для создания стандартного поля размера 9 × 11 используется процедура StandardField без параметров, а для создания поля размера N x M — процедура Field(N,M). Робот при этом помещается в центр поля.



t1571320418ao.png

t1571320418ap.png



t1571320418aq.png

t1571320418ar.png








Литература:

https://www.niisi.ru/kumir/dl.htm

https://5urokov.ru/gdz/bosova_9/86

https://infourok.ru/ispolnitel_robot._podgotovka_k_oge_9_klass.-175063.htm

https://foxford.ru/wiki/informatika/sreda-programmirovaniya-kumir

https://foxford.ru/wiki/informatika/ispolnitel-robot-v-srede-kumir

https://licey.net/free/18-programmirovanie_na_yazyke_kumir/70-sistema_programmirovaniya_kumir/stages/3582-p_11_izmerenie_radiacii.html

https://licey.net/free/18-programmirovanie_na_yazyke_kumir/70-sistema_programmirovaniya_kumir/stages/3581-zadachi_dlya_ispolnitelya_robot.html

https://inf-oge.sdamgia.ru/test?theme=20&ttest=true

https://inf-oge.sdamgia.ru/test?theme=20&ttest=true&print=true&svg=0&sol=true&num=true&ans=true&key=true&attr1=true&attr2=true&crit=true





в формате Microsoft Word (.doc / .docx)
Комментарии

Спасибо за труд!

17 October 2019