Раздел «Язык Си».RobotTasks:

Запуск

mount c ~/dos
c:
keyrus
cd robot
robot имя_программы

Клавиши

Клавиши Что делает Action
табуляция Переключает поле / программа Switch field / programm
F9 Запустить программу Run programm
F10 Выход Exit
* (NumLock?) Робот здесь Set robot
^C Очистить поле Clear field
F1 Помощь Help
Ins Закрасить/очистить Fill/Clear cell
Ins Стенка / нет стенки Set / Clear wall
Left Shift / Right Shift Русский / Английский Rus/Eng
^F10 Мышь Restore mouse

Теория: простые команды

Робот может:

Робот не может очистить клетку

Урок 1. Простые команды и циклы

Пример 1. Закрасить 3 клетки через 1 шаг

Дано: робот стоит у нижней стенки.

Надо: закрасить 3 клетки через 1 шаг.

Напишем программу

программа PROGRAMM1
начало
   шаг на север
   закрасить
   шаг на север
   закрасить
   шаг на север
   закрасить
конец

e1_prg.png

Робот делает 1 шаг, закрашивает клетку, делает 1 шаг, закрашивает клетку, делает 1 шаг, закрашивает клетку.

После выполнения программы поле стало: e1.png

Задача 1. Закрасить 3 клетки через 2 шага

Дано: робот стоит у нижней стенки.

Надо: закрасить 3 клетки через 2 шага.

После выполнения программы поле стало:

t1.png

Пример 2. Циклы. Закрасить до конца

Дано: робот у нижней стенки

Надо: 1 шаг и закрасить клетку много раз, до верхней стенки.

Робот может повторять команды много раз.

Сначала он проверяет условие. Если условие ДА, то он делает команды внутри ПОКА. Повторяет много раз.

программа PROGRAMM1
начало
   пока на севере свободно выполнять
      шаг на север
      закрасить
   конец
конец

Пока на севере свободно, робот делает шаг и закрашивает клетку.

Поле после выполнения программы

e2.png

Задача 2. Закрасить вверх до конца и вправо до конца

Нарисуйте прямоугольник из стен.

Дано: робот стоит в левом нижнем углу.

Надо: 1 шаг и закрасить сначала вверх, потом вправо.

После выполнения программы поле стало:

t2.png

Задача 3. Рамка

Нарисуйте прямоугольник из стен.

Дано: робот стоит в левом нижнем углу.

Надо: 1 шаг и закрасить вдоль всех стен.

После выполнения программы поле стало:

t3.png

Задача 4. Рамка - 2

Нарисуйте прямоугольник из стен.

Дано: робот стоит около одной из стен (стену покажет учитель).

Надо: 1 шаг и закрасить вдоль всех стен.

t3.png

Задача 5. Рамка - 3

Нарисуйте прямоугольник из стен.

Дано: робот стоит внутри НЕ у стены

Надо: Закрасить так же, как раньше.

t3.png

Урок 2. Команды выбора

Робот может проверить условие.

Пример 1. Если

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

Пример 2. Если - иначе

Робот делает шаг на север.
Если робот на закрашенной клетке, то надо пойти на восток;
если на пустой (иначе) - на запад.

Задача 2.1

Робот делает шаг на восток.
Если на востоке стена, он делает шаг на запад и красит клетку.
Если на востоке нет стены, робот делает еще один шаг на восток.

Задача 2.2 Рамка и вернуться в начало

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

Пример 3. И

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

Поле может быть таким: или таким:

Задача 2.3a Остановиться у дырки - юг

Написать программу. Робот стоит около западной стены. Еще одна стена на юге от робота. Робот должен дойти и остановится около «дырки» южной стены. Использовать «отрицание»

Задача 2.3b Остановиться у дырки - любая стена

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

Задача 2.4a Выйти на закрашенное

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

Задача 2.4 Выйти

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

«Дырка» может быть в любой стене.

Задача 2.5 Войти

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

«Дырка» может быть в любой стене.

Урок 3. Процедуры

Можно научить робота новым командам.

Новая команда - это несколько старых команд вместе.

Сначала мы пишем из чего состоит команда (объясняем роботу что делать).

Потом вызываем команду. Одну команду можно вызвать много раз.

Задача. 3.1 Узор - полоса

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

Поле может быть таким: или таким

Задача. 3.2 Узор - шахматы

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

Поле может быть таким: или таким

Задача. 3.3 Лабиринт

Робот стоит в юго-западном углу прямоугольника.

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

Надо: Дойти до самого верхнего коридора и остановиться в любом месте.

Можно закрасить любые клетки.

Задача. 3.4 2n закрасить

В n клетках на запад от робота стена. Других стен нет.

Надо: Закрасить 2n любых клеток.

Задача. 3.4 2n закрасить в коридоре

Робот стоит в коридоре шириной в 1 клетку. В n клетках на запад от робота стена. На востоке стены нет (бесконечный коридор).

Надо: Закрасить 2n любых клеток.

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

Attachment sort Action Size Date Who Comment
t1.png manage 7.5 K 12 Feb 2016 - 21:26 TatyanaDerbysheva task1
robot1.pdf manage 194.2 K 25 Feb 2016 - 08:07 TatyanaDerbysheva Задачи
e1.png manage 8.6 K 26 Feb 2016 - 23:38 TatyanaDerbysheva пример 1
e1_prg.png manage 5.7 K 26 Feb 2016 - 23:40 TatyanaDerbysheva пример 1 программа
e2.png manage 9.1 K 27 Feb 2016 - 00:03 TatyanaDerbysheva пример 2
t2.png manage 6.3 K 27 Feb 2016 - 00:09 TatyanaDerbysheva задача 2
t3.png manage 10.4 K 27 Feb 2016 - 00:18 TatyanaDerbysheva задача 3 (рамка)
if1.png manage 13.2 K 02 Mar 2016 - 23:25 TatyanaDerbysheva пример if 1
if2.png manage 17.9 K 02 Mar 2016 - 23:25 TatyanaDerbysheva пример if 2
if3.png manage 8.3 K 02 Mar 2016 - 23:26 TatyanaDerbysheva пример if 3
if3_1.png manage 8.9 K 02 Mar 2016 - 23:28 TatyanaDerbysheva пример if 3 начальные условия
t2_2.png manage 5.6 K 02 Mar 2016 - 23:28 TatyanaDerbysheva задача 2.2
t3_1.png manage 16.0 K 02 Mar 2016 - 23:42 TatyanaDerbysheva задача 3 (узор полоски)
t3_2.png manage 13.1 K 02 Mar 2016 - 23:42 TatyanaDerbysheva задача 3 (узор шахматы)
t2_3b.png manage 6.5 K 04 Mar 2016 - 21:03 TatyanaDerbysheva задача 2.3a - остановиться у дырки
t2_4a.png manage 6.5 K 04 Mar 2016 - 21:03 TatyanaDerbysheva задача 2.4a - выйти на закрашенное
t2_4b.png manage 6.5 K 04 Mar 2016 - 21:04 TatyanaDerbysheva задача 2.4 - выйти из комнаты
t2_5.png manage 6.5 K 04 Mar 2016 - 21:19 TatyanaDerbysheva задача 2.5 - войти в комнату
t3_3.png manage 1.3 K 08 Mar 2016 - 19:59 TatyanaDerbysheva задача 3.3
t3_5.png manage 1.3 K 08 Mar 2016 - 20:00 TatyanaDerbysheva задача 3.5 2n клеток в коридоре