Вступление
Программа KTurtle, входящая в состав стандартных приложений Линукс Мастер, прекрасно подходит для обучения основам алгоритмизации на примере простого языка Logo, причём команды можно писать словами русского языка.
Интерфейс
Окно оболочки программирования KTurtle имеет следующие области области: редактор кода (1), расположенный слева, который предназначен для ввода команд Logo, холст (2) , расположенного справа, на котором изображаются результаты выполнения команд, меню (3), из которого производится управление программной оболочкой, панель инструментов (4), которая предоставляет быстрый доступ к часто используемым командам, и панель состояния (5), на которой отображается различная информация KTurtle.
В окошке редактора кода вводится команды. После ввода и запуска команд кнопкой Выполнить панели инструментов (или F5 клавиатуры) на холсте объект Черепашка начинает их выполнение. В процессе выполнения можно приостановить или прервать действие алгоритма. В случае обнаружения интерпретатором ошибок в записи алгоритма или команд, выводится сообщение в отдельной вкладке холста.
Основные команды
Самый наглядный пример, позволяющий понять принципы действия разных алгоритмических структур — это их графическое выполнение, например, как это делает Черепашка, рисование на холсте. Подавая Черепашке набор команд, управляющих её передвижением по холсту, мы увидим след от её движения.
Вот эти команды:
вперёд X — движение Черепашки вперёд (по направлению её взгляда) на X точек (пикселей холста). Черепашка оставляет за собой линию (след).
назад X — аналогично предыдущей команде движение назад.
налево X, направо X — поворот Черепашки на X градусов налево или направо, соответственно.
направление X — устанавливает поворот Черепашки на X градусов относительно 0, а не относительно предыдущего направления.
иди X,Y — указывает Черепашке занять определённое место на холсте, находящееся на X пикселей от левой границы и на Y пикселей от верхней границы холста. При перемещении Черепашка не будет оставлять след.
центр — перемещает Черепашку в центр холста.
иди_гор X — перемещает Черепашку на X пикселей от левой границы холста, высота остаётся неизменной.
иди_верт Y — аналогичное перемещение от верхней границы холста, положение относительно левой границы остаётся неизменным.
перо_подними — отрывает перо от холста. Пока перо оторвано, Черепашка не будет рисовать линию во время перемещений.
перо_опусти — опускает перо на холст.
ширина_пера X — устанавливает ширину пера (ширину линии) в X пикселей.
цвет_пера R,G,B — устанавливает цвет пера. В качестве параметров указывается интенсивность красной, зеленой и синей составляющих цвета (числа в диапазоне 0..255).
размер_холста X,Y — задаёт размер холста. В качестве входных параметров задаются ширина X и высота Y в пикселях.
цвет_холста R,G,B — определяет цвет холста, указываемый интенсивностью трёх цветов: красного, зелёного и синего.
обёртка_вкл — включение обёртки холста. Это значит, что при достижении края холста Черепашка не «уйдёт» за его периметр, а продолжит движение на его противоположной стороне.
обёртка_выкл — этой командой вы отключаете обёртку холста, т. е. Черепашка может выйти за границы холста и “исчезнуть”. {не проверено}
очисти — очистка холста от всех следов. Все остальное останется по-прежнему: позиция и угол направления Черепашки, цвет холста, видимость Черепашки и размер холста.
сброс — очищает полнее, нежели команда очисти. После выполнения этой команды всё будет выглядеть так, как будто вы только что запустили KTurtle. Черепашка будет расположена в центре экрана, цвет холста и пера будет белым.
Используя комбинации этих команд, можно добиться построения на холсте любого изображения.
Пример 1. Квадрат.
Такую же задачу можно решить, зная команды цикла (см. далее).
Пример 2. Домик.
Для построения изображения домика на холсте, как и для многих подобных задач, необходимо знать размер холста. По умолчанию он 400х400 пикселей. Возможно, перед разработкой программы придётся начертить координатную сетку, чтобы определить координаты ключевых точек рисунка. Также для определения и вычисления некоторых размеров вам понадобятся базовые знания математики.
Задача может быть решена таким способом: сброс вперёд 100 направо 90 вперёд 100 направо 90 вперёд 100 направо 90 вперёд 100 направо 90 #основание дома построено иди 200,100 направо 45 вперёд 70.71 направо 90 вперёд 70.71 #крыша построена иди 230,200 направление 0 вперёд 70 направо 90 вперёд 40 направо 90 вперёд 70 #дверь создана спрячь
Или таким: сброс назад 100 направо 90 вперёд 100 налево 90 вперёд 100 налево 90 вперёд 100 #основание дома построено направление 45 вперёд 70.71 направо 90 вперёд 70.71 #крыша построена иди 230,300 направление 0 вперёд 70 направо 90 вперёд 40 направо 90 вперёд 70 #дверь создана спрячь
Сравните оба способа. Определите, чем они отличаются.
Есть ли возможность ещё упростить решение этой задачи?
В данных примерах встретилась новая команда «спрячь», дающая указание Черепашке исчезнуть с экрана (появление её осуществляется командой «покажи»). Также вы заметили, что можно добавлять комментарии к программе, указывая в начале знак #. Комментарии, как впрочем и другие элементы текста программы подсвечиваются каким-либо цветом.
Алгоритмическая структура цикла со счётчиком
Язык Logo позволяет строить программы с использованием циклических алгоритмических структур. Самая простая и понятная из них — цикл со счётчиком. Вот как он реализован:
повтори N [команды] — указывает повторять команды, прописанные в квадратных скобках N раз.
Пример 3. Треугольник.сброс повтори 3 { вперёд 100 налево 120 }
Попробуйте теперь сделать подобное для построения квадрата (пример 1).
Пример 4. Сетка.сброс иди 0,0 обертка_вкл повтори 200 { иди_гор 400 назад 1 } повтори 200 { иди_верт 400 назад 1 }
Арифметика языка
В языке Лого используются числа (в математических расчётах, обозначении параметров команд и др.). Они могут быть отрицательными и положительными (...-1, 0, 1, 2...), целыми и дробными (0.5, 678.0567, -54.3 и т. п.). В редакторе кода они подсвечиваются отдельным цветом.
Также в программировании используются переменные: x, a, k, velichina, slovo1 и т. п.
Переменным в программе присваиваются числовые значения с помощью оператора присваивания, например: x = 2.
|