Разработка практикума по языку Logo для 6-9 классов средней школы
Черепашья графика
Дополнительные сведения
Из истории возникновения Лого.
Название языка происходит от греческого «логос» - «слово, мысль, смысл, идея». Язык Лого был разработан в 1967 году в Лаборатории Искусственного Интеллекта Массачусетского технологического института американским ученым Сеймуром Пейпертом. (В том же институте появились первые компьютерные игры, там же зародилось движение хакеров). С момента своего рождения Лого, сохраняя неизменными свои основные черты, постоянно развивается и совершенствуется. Работая со средой Лого можно создавать программы - графические, игровые, диалоговые. В настоящее время существует несколько диалектов Лого, различающихся как набором исходных процедур (примитивов), наличием и составом встроенных библиотек, так и интерфейсом среды - LogoWriter, Micro Worlds (локализованная версия - Лого Миры), UCBLogo, MSWLogo и многие другие [№4].
Язык программирования Лого предоставляет прекрасные возможности при обучении детей младшего школьного возраста.
Его основными достоинствами являются:
наглядность и присутствие игрового момента, поскольку результат выполнения любой команды представляется на экране рисунком.
существование нескольких уровней абстракции (командный и программный режимы работы)
расширяемость набора команд за счет создания процедур.
Лого является в значительной степени языком обработки списков, что роднит его с Lisp и позволяет относить его к языкам функционального программирования.
Рассмотрим связь языков программирования LISP и LOGO.
Попытаемся ответить на вопрос: почему С. Пейперт создал для обучения детей язык, базирующийся на языке LISP?
|
Приведем несколько цитат из монографии [№8]: «ЛОГО - это обозначение философии обучения с помощью расширяющейся семьи языков программирования, которые эта философия и породила. К характерным особенностям семьи языков ЛОГО относятся функциональность и рекурсия. Таким образом, в ЛОГО возможно вводить новые команды и функции, которые затем могут использоваться абсолютно так же, как элементарные команды и функции.
ЛОГО - язык, допускающий интерпретацию. Это значит, что ЛОГО может использоваться в диалоговом режиме. Современные системы программирования на языке ЛОГО представляют собой целостные списковые структуры, т.е. они реализуют списковые языки, куда включены сами списки, списки списков и т.д.»/
Примером плодотворного использования списковой структуры является представление процедур ЛОГО как списка списков, что позволяет эти процедуры создавать, модифицировать и включать в другие процедуры ЛОГО. Таким образом, ЛОГО - это не игрушка, а настоящий язык программирования, но только для детей…"[№8].
«Название ЛОГО было выбрано для нового языка с тем, чтобы подчеркнуть, что этот язык, прежде всего символический и только затем количественный» [№8].
Приведем пример программирования на Лисп и на Лого нескольких задач обработки списков.
Пример. Найти максимальный элемент списка, длину списка, обратить список.
a) Программа на языке MU LISP:
primer.lsp
(DEFUN MAX (L Q)
((NULL L) Q)
(IF (>(CAR L) Q) (MAX (CDR L) (CAR L))
(MAX (CDR L) Q)
)
)
(DEFUN DLINA (L)
((NULL L) 0)
(+ 1 (DLINA (CDR L))
)
)
(DEFUN OBR (L)
((NULL L) NIL)
(CONS (OBR (CDR L)) (CAR L)
|
)
)
) Программа на языке LOGO (разработана для версии LogoWriter):
МАКЕ «L READLIST
MAKE «A FIRST:L«L1 BF:L«DLINA COUNT:L PR:DLINA
ЭТО MAX«№1 MAKE «MAX -100:DLINA [IFELSE (:MAX < ITEM:N:L
[MAKE «MAX ITEM:N:L MAKE «N:N + 1]
[MAKE «N:N + 1]]:MAX
ЭТО ОБРАЩЕНИЕ
MAKE «N:DLINA
MAKE «S []:DLINA [MAKE «S SE:S ITEM:N:L«N:N - 1]:S
END
Вывод о сходстве и различии языков программирования LOGO и LISP можно сделать самостоятельно после просмотра приведенного примера.
Урок №1 «Команды перемещения черепашки»
Вводная беседа
В среде программирования Лого есть объект, который сам может производить определенные действия (перемещаться, поворачиваться), а также менять свои свойства (форму, размеры, цвет и многое другое). Этот объект - черепашка. Человек направляет черепашек, командуя ими.
Запустив программу, вы сначала увидите заставку, а затем - оглавление (список названий листов). Откройте новый лист. В центре экрана - черепашка, а в нижней части - поле команд.
Команды перемещения
Для перемещения черепашки вперёд и назад служат команды FD и ВК (по-английски forward - вперёд, back - назад); после команды нужно указать, на сколько шагов должна продвинуться черепашка.
Например, FD 50 или ВК 70 (шаг у черепашки очень маленький).
Так как многие версии Лого русифицированы, черепашка понимает некоторые команды и на русском языке.
Например, ВПЕРЕД 50 (ВП 50) или НАЗАД 70 (НД 70)
Переключить клавиатуру с русского алфавита на латинский и обратно можно с помощью клавиши F5.
Между командой и числом необходим пробел. Черепашка выполнит команду после нажатия клавиши [Enter]. Команды можно набирать и строчными, и прописными буквами (например, fd 100 или FD 100).
|
Кроме перемещения вперёд - назад, черепашка способна поворачиваться вокруг своей оси на указанное число градусов. Для поворота по часовой стрелке служит команда RT; против часовой стрелки - команда LT (от слов right и left - направо и налево).
Например, RT 90 (ПР 45) или LT 60 (ЛВ 90).
Команда | Параметр | Действие | Сокращен-ная форма | примеры |
forward (вперед) | Количество шагов | Черепашка движется в ту сторону, куда смотрит ее голова | FD (ВП) | FD 50 (ВП 60) |
back (назад) | Количество шагов | Черепашка движется в противоположную голове сторону | ВК (НД) | ВК 170 (НД 70) |
right (направо) | Количество градусов | Черепашка поворачивается направо относительно текущего состояния на указанное количество градусов | RT(ПР) | RT 90(ПР 45) |
left (налево) | Количество градусов | Черепашка поворачивается налево относительно текущего состояния на указанное количество градусов | LT(ЛВ) | LT 60(ЛВ 90) |
Команда CG (clear graphics - сотри рисунки) позволит очистить экран и вернуть черепашку в исходное положение.
Если черепашка уже доползла до границы экрана и должна двигаться дальше, то она не исчезнет, а появится с другой стороны (как будто края экрана склеены).
Иногда трудно вспомнить текущее положение головы черепашки, но надо установить ее в какое-то строго определенное положение, например, строго вверх, или налево. Тогда удобнее использовать команду новый курс (seth) [№1].
Команда | Параметр | Действие | Сокращенная форма | примеры |
seth(нов_курс) | Количество градусов, отсчитываемых от нулевого положения черепахи головой вверх по часовой стрелке | Черепашка поворачивается в соответствии с указанным направлением | seth(нк) | seth90 нк 225 |
Для того, чтобы замедлить движение черепашки, можно применить команду жди.
Команда | Параметр | Действие | Сокращенная форма | примеры |
wait(жди) | Время ожидания в долях секунды | Черепашка делает паузу в действиях на указанный интервал времени | - | Wait 1 (жди 1) |
Прежде чем закончить работу, нужно дать название или номер листу с помощью команды NP (name page - назови лист): например, NP 1. В следующий раз лист 1 можно будет выбрать в оглавлении.
Чтобы перейти на другой лист, нажмите клавишу [ESC] или щелкните мышкой по значку на полосе, разделяющей экран, и вы увидите оглавление.
Заканчивает сеанс работы команда DOS.
Команда повторения
Новая команда REPEAT (повтори) избавит от скучных повторов:
REPEAT сколько раз [что повторять]
Команда | Параметр | Действие | Сокращенная форма | примеры |
REPEAT (повтори) | Количество повторов | Черепашка повторяет действия в квадратных скобках столько раз, сколько указано число повторов | - | REPEAT 4 [FD 40 LT 90] |
Приемы редактирования командной последовательности: стереть ошибку можно клавишей [DEL] (если курсор стоит на удаляемом символе) или клавишей [ ВК] (тогда курсор нужно поставить справа от ошибки); чтобы сделать вставку, достаточно поставить курсор справа от нужного места и набрать пропущенное.
Движение черепашки без следа
Черепашка может двигаться и без следа, это необходимо для получения на экране нескольких отдельных изображений. Для перемещения без следа нужны две новые команды:
PU (pen up) - подними перо (черепашка при движении не будет оставлять след);
PD (pen down) - опусти перо (противоположная команда).
Правильные многоугольники
Чтобы нарисовать правильный треугольник и вернуться в исходное положение, черепашка должна три раза повернуться на угол, смежный с внутренним, т.е. на 120°. Например:
REPEAT 3 [FD 60 RT 120]
Черепашка трижды повернулась на 120° и вернулась в исходную точку.
3 х 120° = 360° - полный оборот.
Это программа для правильного четырехугольника:
REPEAT 4 [FD 40 RT 90]
4 х 90° = 360° - полный оборот.
Видимо, чтобы нарисовать правильный пятиугольник, черепашка должна пять раз выполнить пару действий: пройти некоторое расстояние и повернуться на пятую часть полного оборота: 3600/5=720.
REPEAT 5 [FD 40 RT 72]
Получился правильный пятиугольник.
Арифметические действия можно поручить выполнять компьютеру; знаки арифметических операций в LogoWriter нужно отделять с двух сторон пробелами: например, RT 360 / 5.
Упражнения:
1. Расчертите экран в косую линеечку.
CG RT 65 FD 9900
2. Измерьте длину и ширину экрана (в черепашьих шагах).
FD 380 LT 90 FD 640 (ширина 380, длина 640)
3. Начертите произвольный треугольник.