Представление черепашки. Первые команды. Начать и кончить
Научиться программировать нам поможет специальный компьютерный житель черепашка.
Сначала был построен механический робот, который умел выполнять команды компьютера и, подчиняясь этим командам ползал по полу. Он умел позти вперед и назад, поворачиваться направо и налево. Сначала этого робота звали Ирвин. Потом один из его создателей познакомился с девушкой, папу которой тоже звали Ирвином. Пришлось переименовать робота. Назвали его Черепашкой. Затем сделали компьютерного двойника черепашки, который двигается по экрану. Эта комапьютерная черепаха тоже управляется командами, если мы их правильно написали. Чтобы не ошибаться в написании команд потренируйтесь в спасении китов. Главное - не забывайте ставить пробел между командой и числом!
FD, BK, LT, RT - вперед, назад, налево, направо
FORWARD FD Например - FD 40 - черепашка делает 40 шажков вперед BACK BK Например - BK 50 - черепашка делает 50 шажков назад RIGHT RT Например - RT 90 - черепашка поворачивается вправо на 90 градусов LEFT LT Например - LT 45 - черепашка поворачивается влево на 45 градусов LT 180 и RT 180 - совершенно одно и то же по результату
Как запустить Лого? Напишите в командной строке - logo | Как завершить работу? Напишите в командной строке - BYE |
Что еще может черепашка. Еще одна порция команд.
PU, PD, CS, HT, ST, CT, HOME
PENUP - поднять перо. После этой команды черепашка не оставляет следа PU PENDOWN - опустить перо PD HT - спрятать черепашку. После этой команды черепашка невидима. ST - показать черепашку CS - очистить экран - все римунки стираются. Черепашка возвращается в исходное состояние в центре HOME - домой - Черепашка возвращается в исходное состояние в центре
Все команды, с которыми мы познакомились в этот раз являются простыми - у них нет никаких параметров. Просто - спрячь черепашку, подними перо, сотри текст. Наши собственные первые команды тоже не имели параметров - просто нарисуй треугольник со стороной 50.
Отдельные команды и их последовательности можно повторять при помощи команды повтори - REPEAT. Выражение, которое нужно повторять должно быть заключено в квадратные скобки. Например:
REPEAT 10 [FD 10 rt 7]
Команды другой группы FD, RT, REPEAT требуют для своего исполнения параметров
- чисел или слов. Такие команды в Лого называют процедурами.
требуют значений!
Попробуйте сказать черепашке просто - FORWARD
Она ответит -
not enough inputs - маловато параметров будет!
Обязательно нужно сказать повернись на 90 градусов, пройди 60 шагов, повтори
3 раза.
Пример еще одной команды с параметром - SETPENCOLOR
SETPENCOLOR 5 Теперь мы можем командовать черепашке пером какого цвета
ей надо рисовать.
Задание Нарисуйте три отдельно стоящих треугольника синим, красным и зеленым цветом.
В Лого очень много его встроенных команд и процедур, кроме тех с которыми мы уже познакомились. Однако, все они - только кирпичики, из которых мы можем строить свои собственные команды. Например, может быть выражение REPEAT 10 [FD 10 rt 7] нам еще пригодится, а набирать его будет лень. Мы может назвать это выражение любым словом:
TO DUGA REPEAT 10 [FD 10 rt 7] END
Из внутренних команд Лого можно легко построить новые, свои собственные команды. Например:
TO T1 RT 120 FD 50 RT 120 FD 50 RT 120 FD 50 END
Теперь у нас есть команда T1, по которой черепашка нарисует нам треугольник, всякий раз, когда мы ее об этом попросим. Запомните, что новая команда должна начаться словом TO и закончиться строкой со словом END. Новая команда может быть названа любым словом, если этим словом уже не названа другая команда. Если слово уже использовано, то Лого сообщит об этом. Например, если я попытаюсь создать еще одну новую команду T1, появится надпись: T1 already defined - эта команда уже определена - занято!
В Лого всякая новая процедура об'ясняется черепашке. Слово TO говорит
черепашке - это новая команда, а слова END, сообщает - новая команда написана
полностью.
После этого Черепашка Лого напишет, что эта процедура определена -
duga defined
Теперь мы можем использовать эту дугу по собственному усмотрению.
Что делать, если вы написали свою команду, попробовали, а она делает
не то, что вам нужно? Самый простой способ - переписать ее заново. Для
этого придется, правда, сначала стереть неудачную процедуру:
ERASE "T1
Обратите внимание - перед названием процедуры ставится знак "
Случайные числа порождаются командой RANDOM число. Например:
PRINT random 60 37 PRINT random 60 24
Команда RANDOM требует на входе некое число N, а в результате позволяет получить число в интервале от 0 до N.
Чтобы насладиться ее силой, попробуйте: REPEAT 100 [RT RANDOM 360 FD RANDOM 30] Это пример частицы, двигающейся в случайном направлении и со случайной скоростью. |
А для того, чтобы нарисовать три четверти ежика, я воспользовался старой процедурой Круг - |
Мы знаем уже много команд и можем с их помощью рисовать разные фигуры - круги, квадраты, треугольники. Теперь хочется рисовать эти фигуры разного размера. Например, сказать черепашки - нарисуй квадрат со стороной 30, а теперь со стороной 40 или 20. Для того, чтобы сделать это надо создавать команды или процедуры с параметрами. Эти процедуры нам уже знакомы - FD, RT, Repeat - все они требовали для своей работы значение.
TO QWADRAT :SIZE
REPEAT 4 [RT═90 FD :SIZE]
END
QWADRAT 10 FD═20 QWADRAT 20
TO KRUG :SIZE REPEAT 120 [RT 3 FD :SIZE BK :SIZE] END |
Черепашка может не только ползать по экрану, но и писать на нем цифры, слова и предложения. Для записей на графическом экране используем команду LABEL. Для записи в текстовом режиме используется команда PRINT Например:
Эти примеры представляют типы данных, которые использует Лого -
Числа, слова, списки
С числами мы уже знакомились, когда учили черепашку ползать по экрану
Слово, которое мы говорим черепашки должны быть отмечено в начале значком
".
Важные команды, которые используют слова:
Список - это несколько слов или цифр. Список всегда заключен в квадратные скобки. Это очень полезный контейнер, куда можно очень многое положить. Например:
TO QWADRAT :size repeat 4 [rt 90 fd :size] end TO TREUG :size repeat 3 [rt 120 fd :size] end TO DOM :size QWADRAT :size LT 90 TREUG :size END |
Вспомните, как создаются новые процедуры. В Лого все процедуры равноправны. Я могу отдельно написать команды квадрат и треугольник, а потом об'единить их в команде домик. При этом какая из процедур - домик, квадрат или треугольник будет написана первой - не имеет значения. Процедура домик в свою очередь может в ходить в состав процедуры улица и так далее. |
Одна процедура может вызывать вторую, вторая третью и так далее. Кроме
того, в Лого доспускается, что процедура может вызывать процедуру со своим
собственным именем. Такой вызов процедурой самой себя называется рекурсией.
Вернемся к примеру случайно перемещающейся частицы:
REPEAT 100 [RT RANDOM 360 FD RANDOM 30]
Теперь я хочу, чтобы черепашка совершала действие RT RANDOM 360 FD RANDOM 30 не сто раз, а всегда:
TO BROUN RT RANDOM 360 FD RANDOM 30 BROUN END
Теперь эта сумасшедшая черепашка будет метаться по экрану, пока мы не прервем выполнение процедуры BROUN.