Содержимое

# LibreLogo

LibreLogo — это простая локализованная Logo-подобная среда программирования с черепашьей векторной графикой для обучения компьютерной обработке информации (программированию и обработке текста), DTP и графическому дизайну. Смотри http://www.numbertext.org/logo/librelogo.pdf.

## Панель инструментов LibreLogo

Панель инструментов LibreLogo (Вид - Панели инструментов - Logo) содержит значки перемещения черепахи, выполнения программы, стоп, домой, очистить экран, редактор программ/подсветка синтаксиса/перевод, а также панель ввода (командную строку).

## Значки перемещения черепахи

Соответствуют командам Logo «ВПЕРЁД 10», «НАЗАД 10», «ВЛЕВО 15», «ВПРАВО 15». Щелчок по одному из значков также приводит к переводу фокуса на фигуру черепахи с прокруткой документа к месту её расположения.

## Выполнение программы Logo

Щёлкните по значку «Выполнение программы Logo» для выполнения текста кода (или только выделенной его части) в документе Writer в качестве программы LibreLogo. В пустой документ будет вставлен и выполнен пример кода программы.

Нажмите на кнопку "Стоп" для остановки выполнения программы.

## Home

Щёлкните по значку «Домой» для сброса положения и параметров настройки черепахи.

## Oчистить экран

Щёлкните значок «Очистить экран», чтобы удалить рисунки документа.

## Редактор программ/Подсветка синтаксиса/Перевод

Значок «Волшебная палочка» задаёт режим двухстраничного просмотра для редактирования программы, разворачивает и преобразует из нижнего регистра в верхний сокращённые команды Logo в документе Writer. Измените язык документа (LibreOffice - Параметры Сервис - Параметры - Языки и региональные настройки - Общие - Западные) и щёлкните по этому значку для перевода программы Logo на выбранный язык.

## Kомандная строка

Нажмите Enter в командной строке, чтобы выполнить её содержимое. Для остановки программы используйте значок «Стоп».

Удерживайте клавишу Enter для повторения командной строки, например, для следующих команд:

     ВПЕРЁД 200 ВЛЕВО 89

Чтобы сбросить командную строку, трижды щёлкните по ней или нажмите Command Ctrl+A для выбора предыдущих и ввода новых команд.

## Графический интерфейс для настройки основных параметров черепахи

Фигура черепахи в LibreLogo является обычным рисунком фиксированного размера. Располагать и поворачивать его можно также стандартно с помощью мышки и значка «Повернуть» на панели свойств рисунка. При изменении параметров толщина линии, цвет линии и цвет области фигуры черепахи производится установка атрибутов LibreLogo РАЗМЕР_ПЕРА, ЦВЕТ_ПЕРА и ЦВЕТ_ЗАЛИВКИ.

## Редактирование программы

Изображения и код программы LibreLogo находятся в одном документе Writer. Холст LibreLogo располагается на первой странице документа Writer. Перед кодом программы LibreLogo можно ввести разрыв страницы и задать масштаб отображения страницы с помощью значка «Волшебная палочка» на панели инструментов Logo. Также необходимо сменить размер шрифта для удобства ввода кода LibreLogo в режиме двухстраничного просмотра: на левой (первой) странице размещается холст, на правой (второй) странице находится редактор кода программы LibreLogo.

# Язык программирования LibreLogo

LibreLogo является простым, локализуемым, Logo-подобным языком программирования, который переведён на несколько языков группами перевода LibreOffice. Обладает обратной совместимостью c более старыми системами Logo в случае необходимости использования простых программ Logo в сфере образования, например,

     К треугольник :размер
     ПОВТОРЯТЬ 3 [
       ВПЕРЁД :размер
       ВЛЕВО 120
     ]
     КОНЕЦ

     треугольник 10 треугольник 100 треугольник 200

## Отличия от языка программирования Logo

- Элементы списка разделены запятой: ПОЗИЦИЯ [0, 0]

- Отличия в синтаксисе программных блоков и списков

- - У блоков программ должны быть отступы от квадратных скобок в виде пробела или перевода строки: ПОВТОРЯТЬ 10 [ ВПЕРЁД 10 ВЛЕВО 36 ]

  - Содержимое списков должно вплотную примыкать к квадратным скобкам: ПОЗИЦИЯ [0, 0], а не ПОЗИЦИЯ [ 0, 0 ]

- Однострочные объявления функции не поддерживаются (К и КОНЕЦ должны размещаться на новых строках).

## Другие возможности LibreLogo

- Двоеточие перед именами переменных необязательно.

       К треугольник размер
         ПОВТОРЯТЬ 3 [ ВПЕРЁД размер ВЛЕВО 120 ]
       КОНЕЦ

- Запись строки поддерживается в орфографическом синтаксисе и в синтаксисе Python.

       ПЕЧАТЬ "слово ; исходный синтаксис Logo
       ПЕЧАТЬ “Произвольный текст.” ; орфографический синтаксис Writer
       ПЕЧАТЬ 'Произвольный текст.' ; синтаксис Python

- Обработка списка и строк в стиле языка Python

       ПЕЧАТЬ “текст”[2] ; вывод строки «к»
       ПЕЧАТЬ “текст”[1:3] ; вывод строки «ек»

- Цикл ДЛЯ в стиле Python

- Объявление переменных в стиле Python:

       x = 15
       ПЕЧАТЬ x

- Отсутствуют дополнительные функции запроса:

       ПЕЧАТЬ ЦВЕТ_ЗАЛИВКИ
       p = ПОЗИЦИЯ
       ПЕЧАТЬ p
       ПОВТОРЯТЬ 10 [ ПОЗИЦИЯ ЛЮБОЙ ПОЗИЦИЯ p ]

- Наличие скобок в вызове функции необязательно

       К звезда размер цвет
       ЦВЕТ_ЗАЛИВКИ цвет
       ПОВТОРЯТЬ 5 [ ВЛЕВО 72 ВПЕРЁД размер ВПРАВО 144 ВПЕРЁД размер ]
       ЗАЛИВКА
       КОНЕЦ

       звезда 100 “КРАСНЫЙ”
       звезда(100, “ЗЕЛЁНЫЙ”)
       звезда(100, “СИНИЙ”)

# Команды LibreLogo

## Синтаксис Basic

### Регистрозависимость

Команды и цветовые константы не чувствительны к регистру:

     ПЕЧАТЬ “Здравствуй, мир!”
     печать “И снова, здравствуй, мир!”

Имена переменных чувствительны к регистру:

     a = 5
     A = 7
     ПЕЧАТЬ a
     ПЕЧАТЬ A

### Строки кода программы

Строки кода программы LibreLogo являются абзацами документа Writer. В одной строке кода может содержаться несколько команд:

     ПЕЧАТЬ “Здравствуй, мир!” ПЕЧАТЬ “LibreLogo”

### Комментарии

Строки когда или их части считаются комментариями от символа точки с запятой до конца строки (абзаца):

     ; какие-то комментарии
     ПЕЧАТЬ 5 * 5 ; какие-то комментарии

### Перевод строки кода на несколько абзацев

Перевод строки кода в следующий абзац осуществляется вставкой символа тильда в конец строки:

     ПЕЧАТЬ “Здесь написано очень длинное ” + ~
           “предупредительное сообщение”

## Перемещение черепахи

### ВПЕРЁД (в)

     ВПЕРЁД 10 ; перемещение вперёд на 10пт (1пт = 1/72 дюйма)
     ВПЕРЁД 10пт ; смотри выше
     ВПЕРЁД 0.5" ; перемещение вперёд на 0,5 дюйма (1 дюйм = 2.54 см)
     ВПЕРЁД 1" ; смотри выше
     В 1мм
     В 1см

### НАЗАД (н)

     НАЗАД 10 ; перемещение назад на 10пт

### ВЛЕВО (л)

     ВЛЕВО 90 ; поворот на 90 градусов против часовой стрелки
     ВЛЕВО 90° ; смотри выше
     Л 3h ; смотри выше (расположение стрелок на часах)
     Л любой ; поворот на случайный угол

### ВПРАВО (п)

     ВПРАВО 90 ; поворот на 90 градусов по часовой стрелке

### ПОДНЯТЬ_ПЕРО (пп)

     ПОДНЯТЬ_ПЕРО ; черепаха перемещается без рисования

### ОПУСТИТЬ_ПЕРО (оп)

     ОПУСТИТЬ_ПЕРО ; черепаха перемещается с рисованием

### ПОЗИЦИЯ (поз)

     ПОЗИЦИЯ [0, 0] ; поворот и перемещение в верхний левый угол
     ПОЗИЦИЯ РАЗМЕР_СТРАНИЦЫ ; поворот и перемещение в нижний правый угол
     ПОЗИЦИЯ [РАЗМЕР_СТРАНИЦЫ[0], 0] ; поворот и перемещение в верхний правый угол
     ПОЗИЦИЯ ЛЮБОЙ ; поворот и перемещение в случайную точку

### ЗАГОЛОВОК (заг)

     ЗАГОЛОВОК 0 ; повернуть на север
     ЗАГОЛОВОК 12h ; смотри выше
     ЗАГОЛОВОК [0, 0] ; повернуть в верхний левый угол
     ЗАГОЛОВОК ЛЮБОЙ ; повернуть в случайном направлении

## Другие команды управления черепахой

### СКРЫТЬ_ЧЕРЕПАХУ (сч)

     СКРЫТЬ_ЧЕРЕПАХУ ; скрыть черепаху (до выполнения команды показать черепаху)

### ПОКАЗАТЬ_ЧЕРЕПАХУ (пч)

     ПОКАЗАТЬ_ЧЕРЕПАХУ ; показать черепаху

### НАЧАЛО

     НАЧАЛО ; сброс положения черепахи на исходную позицию

### ОЧИСТИТЬ_ЭКРАН (оэ)

     ОЧИСТИТЬ_ЭКРАН ; удалить рисунки в документе

### ЗАЛИВКА и ЗАКРЫТЬ

     ЗАЛИВКА ; завершить фигуру, ограниченную линиями или точками, и выполнить её заливку
     ЗАКРЫТЬ ; завершить фигуру, ограниченную линиями или точками

Пример: заливка правильного треугольника:

     ВПЕРЁД 50 ВЛЕВО 120 ВПЕРЁД 50 ЗАЛИВКА

Пример: завершение правильного треугольника:

     ВПЕРЁД 50 ВЛЕВО 120 ВПЕРЁД 50 ЗАКРЫТЬ

## Параметры пера

### РАЗМЕР_ПЕРА (тл)

     РАЗМЕР_ПЕРА 100 ; толщина линии 100 точек
     РАЗМЕР_ПЕРА ЛЮБОЙ ; соответствует команде РАЗМЕР_ПЕРА СЛУЧАЙНО 10

### ЦВЕТ_ПЕРА (ц)

     ЦВЕТ_ПЕРА “красный” ; устанавливает красный цвет пера (по имени цвета, смотри цветовые константы)
     ЦВЕТ_ПЕРА [255, 255, 0] ; устанавливает жёлтый цвет пера (в формате RGB)
     ЦВЕТ_ПЕРА 0xffff00 ; устанавливает жёлтый цвет пера (шестнадцатеричный код)
     ЦВЕТ_ПЕРА 0 ; устанавливает чёрный цвет пера (0x000000)
     ЦВЕТ_ПЕРА ЛЮБОЙ ; случайный цвет
     ЦВЕТ_ПЕРА [5] ; устанавливает красный цвет пера (по идентификатору цвета, смотри цветовые константы)
     ЦВЕТ_ПЕРА “невидимый”  ; невидимый цвет пера устанавливается для фигур без видимого контура
     ЦВЕТ_ПЕРА “~красный” ; устанавливает случайный красный цвет

### ПРОЗР_ПЕРА

     ПРОЗР_ПЕРА 80 ; устанавливает прозрачность цвета пера 80%

### УГОЛ_ПЕРА/УГОЛ_ЛИНИИ

     УГОЛ_ПЕРА “нет” ; завершение на срезе линии по умолчанию
    УГОЛ_ПЕРА “скруглить” ; завершение линии скруглением
     УГОЛ_ПЕРА “квадрат” ; квадратное завершение линии

### СОЕДИНИТЬ_ПЕРО/СОЕДИНИТЬ_ЛИНИИ

     СОЕДИНИТЬ_ПЕРО “скруглить” ; скруглённое соединение линий (по умолчанию)
     СОЕДИНИТЬ_ПЕРО “скос45” ; соединение линий с острым завершением
     СОЕДИНИТЬ_ПЕРО “скос” ; соединение линий со скосом
     СОЕДИНИТЬ_ПЕРО “нет” ; без соединения линий

### СТИЛЬ_ПЕРА

     СТИЛЬ_ПЕРА “сплошная” ; сплошная линия (по умолчанию)
     СТИЛЬ_ПЕРА “пунктирная” ; пунктирная линия
     СТИЛЬ_ПЕРА “штриховая” ; штриховая линия

     ; настраиваемая штрих-пунктирная линия указывается в списке со следующими аргументами:
     ; – число последовательных точек
     ; – длина точки
     ; – число последовательных штрихов
     ; – длина штриха
     ; – расстояние между точками/штрихами
     ; – тип (необязательно):
     ;   0 = точки в виде прямоугольников (по умолчанию)
     ;   2 = точки в виде квадратов (длины и расстояния устанавливаются относительно размера пера)

     СТИЛЬ_ПЕРА [3, 1мм, 2, 4мм, 2мм, 2] ; ...––...––...––

## Параметры заливки

### ЦВЕТ_ЗАЛИВКИ (цз)

     ЦВЕТ_ЗАЛИВКИ “синий” ; заполнение синим цветом, смотри также ЦВЕТ_ПЕРА
     ЦВЕТ_ЗАЛИВКИ “невидимый” КРУГ 10 ; незаполненный круг
     ЦВЕТ_ЗАЛИВКИ [“синий”, “красный”] ; градиент между красным и синим
     ЦВЕТ_ЗАЛИВКИ [[255, 255, 255], [255, 128, 0]] ; между белым и оранжевым
     ЦВЕТ_ЗАЛИВКИ [“синий”, “красный”, 1, 0, 0] ; задать осевой градиент (с необходимыми параметрами поворота и границы), возможные величины: 0-5 = линейный, осевой, радиальный, эллиптический, квадратный и прямоугольный градиенты
     ЦВЕТ_ЗАЛИВКИ [“красный”, “синий”, 0, 90, 20] ; линейный градиент с границей 20%, поворот 90 градусов от текущего направления черепахи
     ЦВЕТ_ЗАЛИВКИ [“красный”, “синий”, 0, 90, 20, 0, 0, 200, 50] ; от 200% до 50% интенсивности
     ЦВЕТ_ЗАЛИВКИ [ЛЮБОЙ, ЛЮБОЙ, 2, 0, 0, 50, 50] ; радиальный градиент со случайными цветами и положением по горизонтали и вертикали 50 на 50% относительно центра

### ПРОЗР_ЗАЛИВКИ (пз)

     ПРОЗР_ЗАЛИВКИ 80 ; с прозрачностью от текущего цвета заливка до 80%
     ПРОЗР_ЗАЛИВКИ [80] ; линейный градиент прозрачности от 80% до 0%
     ПРОЗР_ЗАЛИВКИ [80, 20] ; линейный градиент прозрачности от 80% до 20%
     ПРОЗР_ЗАЛИВКИ [80, 20, 1, 90] ; осевой градиент прозрачности с поворотом на 90 градусов от текущего направления черепахи
     ПРОЗР_ЗАЛИВКИ [80, 20, 2, 0, 20, 50, 50] ; радиальный градиент прозрачности с 80% снаружи до 20% внутри с границей 20% и с положением по горизонтали и вертикали 50 на 50% относительно центра

### СТИЛЬ_ЗАЛИВКИ

     СТИЛЬ_ЗАЛИВКИ 0 ; заполнение без штриховки (по умолчанию)
     СТИЛЬ_ЗАЛИВКИ 1 ; чёрная одинарная штриховка (по горизонтали)
     СТИЛЬ_ЗАЛИВКИ 2 ; чёрная одинарная штриховка (45 градусов)
     СТИЛЬ_ЗАЛИВКИ 3 ; чёрная одинарная штриховка (-45 градусов)
     СТИЛЬ_ЗАЛИВКИ 4 ; чёрная одинарная штриховка (по вертикали)
     СТИЛЬ_ЗАЛИВКИ 5 ; красная перекрёстная штриховка (45 градусов)
     СТИЛЬ_ЗАЛИВКИ 6 ; красная перекрёстная штриховка (0 градусов)
     СТИЛЬ_ЗАЛИВКИ 7 ; синяя перекрёстная штриховка (45 градусов)
     СТИЛЬ_ЗАЛИВКИ 8 ; синяя перекрёстная штриховка (0 градусов)
     СТИЛЬ_ЗАЛИВКИ 9 ; синяя тройная перекрёстная штриховка
     СТИЛЬ_ЗАЛИВКИ 10 ; черная одинарная широкая штриховка (45 градусов)

     ; параметры настраиваемой штриховки указываются в списке следующих аргументов:
     ; – стиль (1 = одинарная, 2 = двойная, 3 = тройная штриховка)
     ; – цвет
     ; – расстояние
     ; – градусы

     СТИЛЬ_ЗАЛИВКИ [2, “зелёный”, 3пт, 15°] ; зелёная перекрёстная штриховка (15 градусов)

## Рисунки

### КРУГ

     КРУГ 100 ; рисует фигуру в форме круга (диаметр = 100пт)

### ЭЛЛИПС

     ЭЛЛИПС [50, 100] ; рисует эллипс с диаметрами 50 и 100
     ЭЛЛИПС [50, 100, 2h, 12h] ; рисует сектор эллипса (от положения стрелок на часах 2ч до 12ч)
     ЭЛЛИПС [50, 100, 2h, 12h, 2]  ; рисует сегмент эллипса
     ЭЛЛИПС [50, 100, 2h, 12h, 3]  ; рисует дугу эллипса

### КВАДРАТ

     КВАДРАТ 100 ; рисует фигуру квадрата (размер = 100пт)

### ПРЯМОУГОЛЬНИК

     ПРЯМОУГОЛЬНИК [50, 100] ; рисует фигуру прямоугольника (50×100пт)
     ПРЯМОУГОЛЬНИК [50, 100, 10] ; рисует прямоугольник с закруглёнными углами

### ТОЧКА

     ТОЧКА ; рисует точку с размером и цветом пера

Команда ЗАКРЫТЬ соединяет крайние точки, команда ЗАЛИВКА выполняет заливку фигуры, ограниченной точками. Например, это позволяет нарисовать «плоскую» звезду, выполняя переходы от центра:

     ПОДНЯТЬ_ПЕРО
     ПОВТОРЯТЬ 5 [
       ВПЕРЁД 80
       ТОЧКА
       НАЗАД 80
       ВПРАВО 36
       ВПЕРЁД 50
       ТОЧКА
       НАЗАД 50
       ВПРАВО 120
     ] ЗАЛИВКА

### НАДПИСЬ

     НАДПИСЬ “текст” ; вывод текста в месте положения черепахи
     НАДПИСЬ 'текст' ; смотри выше
     НАДПИСЬ “текст ; смотри выше (только для отдельных слов)

### ТЕКСТ

     КРУГ 10 ТЕКСТ “текст” ; вставка текста в текущий рисунок

## Параметры шрифта

### ЦВЕТ_ШРИФТА/ЦВЕТ_ТЕКСТА

     ЦВЕТ_ШРИФТА “зелёный” ; задаёт цвет шрифта

### СЕМЕЙСТВО_ШРИФТОВ

     СЕМЕЙСТВО_ШРИФТОВ “Linux Libertine G” ; задаёт шрифт (семейство)
     СЕМЕЙСТВО_ШРИФТОВ “Linux Libertine G:smcp=1” ; указывает также свойства шрифта (малые прописные)
     СЕМЕЙСТВО_ШРИФТОВ “Linux Libertine G:smcp=1&onum=1” ; малые прописные + старые формы

### КЕГЛЬ

     КЕГЛЬ 12 ; задаёт размер 12пт

### ТОЛЩИНА_ШРИФТА

     ТОЛЩИНА_ШРИФТА “жирный” ; задаёт жирный шрифт
     ТОЛЩИНА_ШРИФТА “обычный” ; задаёт нормальную толщину шрифта

### СТИЛЬ_ШРИФТА

     СТИЛЬ_ШРИФТА “курсив” ; задаёт курсивный стиль шрифта
     СТИЛЬ_ШРИФТА “обычный” ; задаёт обычный стиль шрифта

## ИЗОБРАЖЕНИЕ (изо)

Команда ИЗОБРАЖЕНИЕ предназначена для

- группирования фигур;

- создания новой линии;

- сохранения изображений SVG и анимаций SVG/SMIL;

- удерживание позиционной согласованности фигур относительно левой границы.

### Группировка фигур

     ; ИЗОБРАЖЕНИЕ [ команды_LibreLogo ]
     ИЗОБРАЖЕНИЕ [ ВПЕРЁД 100 КРУГ 100 ] ; сгруппированная фигура дерева

Смотрите также «Группировать» в Справке LibreOffice Writer.

     К дерево расположение
       ПОДНЯТЬ_ПЕРО ПОЗИЦИЯ расположение ЗАГОЛОВОК 0 ОПУСТИТЬ_ПЕРО
       ИЗОБРАЖЕНИЕ [ ВПЕРЁД 100 КРУГ 100 ] ; сгруппированная фигура дерева
     КОНЕЦ

     ИЗОБРАЖЕНИЕ [ дерево [230, 400] дерево [300, 400] ] ; сгруппированная фигура в сгруппированной фигуре

### Создание новых линий

     ИЗОБРАЖЕНИЕ ; начинает новую линию
     ВПЕРЁД 10 ИЗОБРАЖЕНИЕ ВПЕРЁД 10 ; всего получается две линии

### Сохранение изображений SVG

     ИЗОБРАЖЕНИЕ “пример.svg” [ КРУГ 5 ] ; сохраняет изображение в виде файла изображения SVG в папке пользователя
     ИЗОБРАЖЕНИЕ “Desktop/пример.svg” [ ВПЕРЁД 100 КРУГ 5 ] ; как и выше, но с указанием относительного пути
     ИЗОБРАЖЕНИЕ “/home/user/example.svg” [ КРУГ 5 ] ; при указании абсолютного пути в Unix/Linux
     ИЗОБРАЖЕНИЕ “C:\example.svg” [ КРУГ 5 ] ; при указании абсолютного пути в Windows

### Сохранение анимации SVG/SMIL (рисование с применением команды ЖДАТЬ)

     ИЗОБРАЖЕНИЕ “анимация.svg” [ КРУГ 5 ЖДАТЬ 1000 КРУГ 99 ] ; сохраняет изображение в виде анимации SVG/SMIL (смотрите также описание команды ЖДАТЬ)
     ИЗОБРАЖЕНИЕ “анимация2.svg” [ КРУГ 5 ЖДАТЬ 1000 КРУГ 99 ЖДАТЬ 2000 ] ; делает то же, что и команды выше, но использование команды ЖДАТЬ после формирования последнего объекта приводит к зацикливанию: анимация SVG в браузерах с поддержкой SMIL перезапускается через 2 секунды

### Позиционная согласованность относительно левой границы

Команду ИЗОБРАЖЕНИЕ можно использовать для сохранения позиционной согласованности фигур относительно левой границы Writer:

     ИЗОБРАЖЕНИЕ [ КРУГ 20 ПОЗИЦИЯ [-100, 100] КРУГ 20 ]

## Инструкции циклов

### ПОВТОРЯТЬ

     ; ПОВТОРЯТЬ число [ команды ]

     ПОВТОРЯТЬ 10 [ ВПЕРЁД 10 ВЛЕВО 45 КРУГ 10 ] ; повторять 10 раз

     ; число указывать необязательно

     ПОВТОРЯТЬ [ ПОЗИЦИЯ ЛЮБОЙ ] ; бесконечный цикл

### ПОВТОРИТЬ

Зацикливание переменной (включая циклы ДЛЯ и ПОКА).

     ПОВТОРЯТЬ 100 [ ВПЕРЁД ПОВТОРИТЬ ВЛЕВО 90 ]

### ДЛЯ В

Зацикливание элементов списка:

     ДЛЯ ц В [1, 5, 7, 9, 11] [
       ВПЕРЁД ц
       ВЛЕВО 90
     ]

Цикл для символов из последовательности символов:

     ДЛЯ ц В “текст” [
       НАДПИСЬ ц
       ВПЕРЁД 10
     ]

### WHITE

     ПОКА ИСТИНА [ ПОЗИЦИЯ ЛЮБОЙ ] ; бесконечный цикл
     ПОКА ПОВТОРИТЬ <= 10 [ ВПЕРЁД 50 ВЛЕВО 36 ] ; как ПОВТОРЯТЬ 10 [ ... ]

### ПРЕРВАТЬ

Остановка цикла

     ПОВТОРЯТЬ [ ; бесконечный цикл
       ПОЗИЦИЯ ЛЮБОЙ
       ЕСЛИ ПОВТОРИТЬ = 100 [ ПРЕРВАТЬ ]  ; соответствует команде ПОВТОРЯТЬ 100 [ ... ]
     ]

### ПРОДОЛЖИТЬ

Переход к следующей итерации цикла.

     ПОВТОРЯТЬ 100 [
       ПОЗИЦИЯ ЛЮБОЙ
       ЕСЛИ ПОВТОРИТЬ % 2 = 0 [ ПРОДОЛЖИТЬ ]
       КРУГ 10 ; рисует круги на каждой второй позиции
     ]

## Условия

### ЕСЛИ

     ; ЕСЛИ условие [ блок истина ]
     ; ЕСЛИ условие [ блок истина ] [ блок ложь ]

     ЕСЛИ a < 10 [ ПЕЧАТЬ “Небольшое” ]
     ЕСЛИ a < 10 [ ПЕЧАТЬ “Небольшое” ] [ ПЕЧАТЬ “Большое” ]

### И, ИЛИ, НЕ

Логические операторы.

     ЕСЛИ a < 10 И НЕ a = 5 [ ПЕЧАТЬ “0, 1, 2, 3, 4, 6, 7, 8 или 9” ]
     ЕСЛИ a < 10 И a != 5 [ ПЕЧАТЬ “0, 1, 2, 3, 4, 6, 7, 8 или 9” ] ; как указано выше

## Подпрограммы

### К, КОНЕЦ

Новое слово (или процедура).

     К треугольник
       ПОВТОРЯТЬ 2 [ ВПЕРЁД 100 ВПРАВО 120 ] ЗАЛИВКА
     КОНЕЦ

     ПОВТОРЯТЬ 10 [ треугольник ПОДНЯТЬ_ПЕРО ПОЗИЦИЯ ЛЮБОЙ ОПУСТИТЬ_ПЕРО ]

### ВЫВОД

Возвращает значение функции.

     К случайная_буква
       ВЫВОД СЛУЧАЙНО “йцукеягшщзфывапролднчсмить”
     КОНЕЦ

     ПЕЧАТЬ случайная_буква + случайная_буква + случайная_буква ; вывод трёхбуквенной последовательности символов

### СТОП

Возврат из процедуры.

     TO пример число
       ЕСЛИ число < 0 [ STOP ]
       ПЕЧАТЬ КОРЕНЬ число ; вывод результата вычисления квадратного корня
     ]

     пример 100
     пример -1 ; без вывода результата и ошибки
     пример 25

## Переменные по умолчанию

### ЛЮБОЙ

Случайное значение цвета по умолчанию, и тому подобное.

     ЦВЕТ_ЗАЛИВКИ ЛЮБОЙ ; случайный цвет пера

### ИСТИНА

Логическое значение.

     ПОКА ИСТИНА [ ПОЗИЦИЯ ЛЮБОЙ ] ; бесконечный цикл
     ПЕЧАТЬ ИСТИНА ; вывод логического значения Истина

### ЛОЖЬ

Логическое значение.

     ПОКА НЕ ЛОЖЬ [ ПОЗИЦИЯ ЛЮБОЙ ] ; бесконечный цикл
     ПЕЧАТЬ ЛОЖЬ ; вывод логического значения Ложь

### РАЗМЕР_СТРАНИЦЫ

     ПЕЧАТЬ РАЗМЕР_СТРАНИЦЫ ; вывод списка размеров страницы в пунктах, например, [595.30, 841.89]

### ПИ/PI/π

     ПЕЧАТЬ ПИ ; вывод числа 3,14159265359

## ВВОД/ВЫВОД

### ПЕЧАТЬ

     ПЕЧАТЬ “текст” ; вывод строки «текст» в диалоговом окне
     ПЕЧАТЬ 5 + 10 ; выводит число 15

### ВВОД

     ПЕЧАТЬ ВВОД “Введите значение:” ; запрос и вывод строки с помощью диалогового окна ввода значения
     ПЕЧАТЬ ДРОБНОЕ (ВВОД “Первое число:”) + ДРОБНОЕ (ВВОД “Второе число:”) ; простой калькулятор

## ЖДАТЬ

     ЖДАТЬ 1000 ; ожидание 1000 мсек (1 сек)

## ОБЩЕЕ

Задать глобальные переменные для использования в процедурах.

     ОБЩЕЕ о_программе
     о_программе = “LibreLogo”

     К пример
       ПЕЧАТЬ о_программе
       ОБЩЕЕ о_программе ; при необходимости добавить новое значение
       о_программе = “новое значение для глобальной переменной”
     КОНЕЦ

     пример
     ПЕЧАТЬ о_программе

## Функции

### СЛУЧАЙНО

     ПЕЧАТЬ СЛУЧАЙНО 100 ; случайное число с плавающей точкой (0 <= x < 100)
     ПЕЧАТЬ СЛУЧАЙНО “текст” ; вывод случайного символа из строки «текст»
     ПЕЧАТЬ СЛУЧАЙНО [1, 2] ; вывод случайного элемента списка (1 или 2)

### ЦЕЛОЕ

     ПЕЧАТЬ ЦЕЛОЕ 3.8 ; вывод числа 3 (целой части числа 3.8)
     ПЕЧАТЬ ЦЕЛОЕ СЛУЧАЙНО 100 ; вывод случайного целого числа (0 <= x < 100)
     ПЕЧАТЬ ЦЕЛОЕ “7” ; преобразование строкового параметра в целочисленное значение

### ДРОБНОЕ

     ; преобразование строкового параметра в число с плавающей точкой
     ПЕЧАТЬ 2 * ДРОБНОЕ “5.5” ; вывод числа 11.0

### СТРОКА

     ; преобразование числового параметра в строку
     ВЫВОД “Результат: ” + СТРОКА 5 ; выводит строку “Результат: 5”
     ПЕЧАТЬ 10 * СТРОКА 5 ; выводит строку 5555555555

### КОРЕНЬ

     ПЕЧАТЬ КОРЕНЬ 100 ; вывод числа 10, квадратного корня числа 100

### SIN

     ПЕЧАТЬ SIN 90 * ПИ/180 ; вывод 1.0 (синус 90° в радианах)

### COS

     ПЕЧАТЬ COS 0 * ПИ/180 ; вывод числа 1.0 (косинус 0° в радианах)

### LOG10

     ПЕЧАТЬ LOG10 100 ; вывод числа 2.0 (десятичный логарифм числа 100)

### ОКРУГЛ

     ПЕЧАТЬ СКРУГЛИТЬ 3.8 ; вывод числа 4 (округление 3.8)
     ПЕЧАТЬ СКРУГЛИТЬ СЛУЧАЙНО 100 ; случайное целое число (0 <= x <= 100)

### ABS

     ПЕЧАТЬ ABS -10 ; вывод числа 10, абсолютного значения числа -10

### СЧЁТ

     ПЕЧАТЬ СЧЁТ “текст” ; вывод числа 4, количества символов в строке «текст»
     ПЕЧАТЬ СЧЁТ [1, 2, 3] ; вывод числа 3, количества элементов в списке

### УСТАНОВИТЬ

     ; Преобразование списка в множество Python
     ПЕЧАТЬ УСТАНОВИТЬ [4, 5, 6, 6] ; вывод {4, 5, 6}
     ПЕЧАТЬ УСТАНОВИТЬ [4, 5, 6, 6] | УСТАНОВИТЬ [4, 1, 9] ; вывод {1, 4, 5, 6, 9}, объединение
     ПЕЧАТЬ УСТАНОВИТЬ [4, 5, 6, 6] & УСТАНОВИТЬ [4, 1, 9] ; вывод {4}, пересечение
     ПЕЧАТЬ УСТАНОВИТЬ ([4, 5, 6, 6]) - УСТАНОВИТЬ [4, 1, 9] ; вывод {5, 6}, разность
     ПЕЧАТЬ УСТАНОВИТЬ [4, 5, 6, 6] ^ УСТАНОВИТЬ [4, 1, 9] ; вывод {1, 5, 6, 9}, симметрическая разность

### ДИАПАЗОН

     ; формирование списка в стиле Python
     ПЕЧАТЬ СПИСОК ДИАПАЗОН 10 ; вывод списка [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     ПЕЧАТЬ СПИСОК ДИАПАЗОН 3 10 ; вывод списка [3, 4, 5, 6, 7, 8, 9]
     ПЕЧАТЬ СПИСОК ДИАПАЗОН 3 10 3 ; вывод списка [3, 6, 9]

     ДЛЯ ц В ДИАПАЗОН 10 50 10 [ ; цикла для [10, 20, 30, 40]
       ВПЕРЁД ц
       ВЛЕВО 90
     ]

### СПИСОК

     ; удаление повторяющихся элементов списка при преобразовании множества в список
     ПЕЧАТЬ СПИСОК (УСТАНОВИТЬ [1, 3, 5, 5, 2, 1]) ; вывод списка [1, 3, 5, 2]

### КОРТЕЖ

Преобразование в кортеж Python (неизменяемый список)

     ПЕЧАТЬ КОРТЕЖ [4, 5]

### ОТСОРТИРОВАНО

Возвращает отсортированный список.

     ПЕЧАТЬ ОТСОРТИРОВАНО [5, 1, 3, 4] ; вывод списка [1, 3, 4, 5]

### SUB

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

     ПЕЧАТЬ SUB (“т”, “Т”, “текст”) ; вывод строки «Текст» с заменой «т» на «Т»
     ПЕЧАТЬ SUB (“(.)”, “\\1\\1”, “текст”) ; вывод строки «ттеекксстт» с удвоением каждого символа

### ПОИСК

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

     ЕСЛИ НАЙТИ (“\w”, "слово") [ ПЕЧАТЬ “Буква в слове.” ]

### НАЙТИ_ВСЁ

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

     ПЕЧАТЬ НАЙТИ_ВСЁ(“\w+”, “Собаки, кошки.”) ; выводит список слов [“Собаки”, “кошки”].

### МИН

     ПЕЧАТЬ МИН [1, 2, 3] ; вывод числа 1, наименьшего элемента списка

### МАКС

     ПЕЧАТЬ МАКС [1, 2, 3] ; вывод числа 3, наибольшего элемента списка

## Цветовые константы

     ЦВЕТ_ПЕРА “СЕРЕБРЯНЫЙ” ; задаёт значения по имени
     ЦВЕТ_ПЕРА [1] ; задаёт значения по идентификатору
     ЦВЕТ_ПЕРА “~СЕРЕБРЯНЫЙ” ; случайный серебристый цвет

Идентификатор | Имя
--- | ---
0 | BLACK
1 | SILVER
2 | GRAY/GREY
3 | WHITE
4 | MAROON
5 | RED
6 | PURPLE
7 | FUCHSIA/MAGENTA
8 | GREEN
9 | LIME
10 | OLIVE
11 | YELLOW
12 | NAVY
13 | BLUE
14 | TEAL
15 | AQUA
16 | PINK
17 | TOMATO
18 | ORANGE
19 | GOLD
20 | VIOLET
21 | SKYBLUE
22 | CHOCOLATE
23 | BROWN
24 | INVISIBLE