Опубликован: 10.09.2014 | Уровень: для всех | Доступ: платный | ВУЗ: Оренбургский государственный педагогический университет
Лекция 6:

Создание собственных блоков

< Лекция 5 || Лекция 6: 12 || Лекция 7 >
Аннотация: Цель: изучить возможности языка NXT-G по созданию собственных блоков (подпрограмм). Изучить способы создания собственных блоков с входными и выходными параметрами. Рассмотреть возможность использования генератора псевдослучайных чисел.

Подпрограммы: My block

Язык NXT-G позволяет программисту создавать собственные блоки, наподобие блока Move. При этом видимый программный код значительно сокращается, что в случае NXT-G очень важно, так как на экране умещается только небольшая часть кода и часто приходится прибегать к прокрутке.

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

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

Задание 6.1. Записать в тетрадь на сколько градусов нужно повернуть колёса робота, чтобы сам робот повернулся на 90°.

Задание 6.2. Написать программу движения робота по квадрату по следующей схеме:

  • Повтори 4 раза:
    • Вперёд;
    • Поворот робота на 90° (на сколько градусов нужно повернуть колёса Вы определили в задании 6.1).

Задание 6.3. Написать программу "Восьмёрка", в которой робот двигается по следующей траектории [4]:

Начало движения - в центре фигуры; цифрами обозначен порядок прохождения сторон. Схема программы:

  • Повтори 2 раза
    • Квадрат
    • Поворот на N°. Подсказка: N° найти через пропорцию; см. задание 6.1 .

Пример 6.1. Написать ту же самую программу, используя подпрограмму (My block). Для этого:

  1. выделить мышкой цикл движения робота по квадрату;
  2. выбрать пункт меню Edit \ Make A New My Block (Редактирование \ Создать новый блок);
  3. в окне My Block Builder (Конструктор блоков) в поле Block Name ввести имя блока Square (только английскими буквами) и описание блока в поле Block Description (можно по-русски), например "Процедура движения по квадрату";
  4. нажать кнопку Next (Далее);
  5. на этом шаге нужно создать значок для Вашего блока путём перетаскивания готовых иконок в верхнюю область окна; можно использовать несколько иконок;
  6. нажать кнопку Finish (Конец);
  7. в результате на листе программы вместо цикла Вы увидите Ваш блок под названием Square. Если выполнить на нём двойной щелчок, то на соседней вкладке (на новом листе) откроется содержимое блока, которое при необходимости можно отредактировать. Выбирать свои блоки можно из палитры Custom palette (Моя палитра);
Из перечисленных шагов создания подпрограммы обязательными являются шаги 1, 2, 6. Однако мы советуем выполнять всю последовательность и особое внимание уделить описанию подпрограммы. Некоторое время спустя это поможет вспомнить, что же именно делает эта подпрограмма и разобраться с назначением её параметров. Кроме того, ввод описания блока является правилом хорошего тона. В нашем курсе мы считаем это действие необходимым.

Тогда программа движения по восьмёрке может выглядеть, например, так

Движение робота по квадрату с использованием подпрограммы

Рис. 6.1. Движение робота по квадрату с использованием подпрограммы

или так

Движение робота по квадрату с использованием подпрограммы и цикла

Рис. 6.2. Движение робота по квадрату с использованием подпрограммы и цикла

Задание 6.4. Сравните работу двух вариантов программ.

Обратите внимание, доступ к конструктору блоков можно получить и через панель инструментов (Рис. 6.3):

Кнопка Create My Block на панели инструментов

Рис. 6.3. Кнопка Create My Block на панели инструментов

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

Задание 6.6. (Из [4]). Написать программу для движения робота, который, используя программу из задания 6.5, при своём движении "рисует" мозаику (Рис. 6.4). Для того, чтобы сделать движение робота более наглядным, закрепите на робот маркер острием вниз и подложите на стол бумагу.

Пример траектории движения робота к заданию 6.6

Рис. 6.4. Пример траектории движения робота к заданию 6.6
< Лекция 5 || Лекция 6: 12 || Лекция 7 >
Наталья Смольянинова
Наталья Смольянинова
Россия, г. Воронеж
Юлия Нажимова
Юлия Нажимова
Россия, Тюменская область