Математические, логические операторы и операторы сравнения
Название этого раздела может показаться очень трудным, но это не так сложно, как кажется.
Вот основные математические символы: сложение (+), вычитание (-), умножение (*), деление (/) и возведение в степень (^).
Небольшой пример использования математических операторов в TurtleScript:
$сумма = 1 + 1
$разница = 20 - 5
$произведение = 15 * 2
$частное = 30 / 30
$степень = 2 ^ 2
Результаты выполнения математических операций сохранены в различных переменных. Вы можете увидеть их значения в инспекторе.
Если в программе вам нужно вычислить простое выражение, вы можете поступить следующим образом:
напиши 2010-12
Вот пример с круглыми скобками:
напиши ( ( 20 - 5 ) * 2 / 30 ) + 1
Выражение в скобках будет вычислено первым. В данном примере сначала будет получена разность 20 – 5, затем полученное значение будет умножено на 2, поделено на 30 и, напоследок, будет добавлена единица (результат равен 2). Скобки также могут быть использованы и в других случаях.
В KTurtle также есть дополнительные математические функции в виде команд. Обратите внимание на следующие команды, но знайте, что речь идёт о сложных операциях: округли, случайное, sqrt , pi, sin, cos, tg, arcsin, arccos, arctg.
В то время как математические операторы используют числа, логические операторы используют логические значения (истина и ложь). Существует только три логических оператора, а именно: и, или и не. Следующий фрагмент кода TurtleScript демонстрирует их использование:
$и_1_1 = истина и истина # -> истина
$и_1_0 = истина и ложь # -> ложь
$и_0_1 = ложь и истина # -> ложь
$и_0_0 = ложь и ложь # -> ложь
$или_1_1 = истина или истина # -> истина
$или_1_0 = истина или ложь # -> истина
$или_0_1 = ложь или истина # -> истина
$или_0_0 = ложь или ложь # -> ложь
$не_1 = не истина # -> ложь
$не_0 = не ложь # -> истина
С помощью инспектора можно увидеть значения, но мы также указали их в комментариях в конце каждой строки. и вернёт истина, только если обе стороны содержат истина. или вернёт истина, если хотя бы одна из сторон содержит истина, и не превращает истина в ложь, а ложь в истина.
Логические операторы выделяются розовым.
Рассмотрим следующий пример с и:
$a = 1
$b = 5
если (($a < 10) и ($b == 5)) и ($a < $b) {
напиши "привет"
}
В этом фрагменте кода TurtleScript результаты трёх операторов сравнения объединены операторами и. Это означает, что для печати «привет» все три сравнения должны вернуть «истина».
Пример с или:
$n = 1
если ($n < 10) или ($n == 2) {
напиши "привет"
}
В этом фрагменте кода TurtleScript левая часть от или возвращает «истина», а правая часть — «ложь». Так как одна из сторон оператора или — «истина», этот оператор вернёт «истина» и будет напечатано «привет».
И, наконец, пример с не, меняющим «истина» на «ложь» и «ложь» на «истина»:
$n = 1
если не ($n == 3) {
напиши "привет"
} иначе {
напиши "не привет ;-)"
}
Рассмотрим простое сравнение:
$ответ = 10 > 3
Здесь 10 сравнивается с 3 оператором «больше чем». Результатом сравнения является логическое значение истина, которое сохраняется в переменной $ответ.
Все числа и переменные (содержащие числа) можно сравнивать друг с другом при помощи операторов сравнения.
Здесь приведены все операторы сравнения:
$A == $B равно ответ истина если $A равно $B
$A != $B не равно ответ истина если $A не равно $B
$A > $B больше чем ответ истина если $A больше чем $B
$A < $B меньше чем ответ истина если $A меньше чем $B
$A >= $B больше или равно ответ истина если $A больше или равно $B
$A <= $B меньше или равно ответ истина если $A меньше или равно $B
Обратите внимание, что $A и $B должны быть числами или переменными с числами.
Команды
Используя команды, вы указываете Черепашке или KTurtle выполнить какое-то действие. Некоторым командам необходимы входные данные, некоторые выводят данные. В этом разделе мы опишем все встроенные команды KTurtle. Используя команду выучи, вы можете создавать собственные команды. Описываемые здесь встроенные команды выделяются тёмно-синим.
Существует несколько команд для перемещения Черепашки по экрану.
вперёд (вп)
вперёд X
вперёд перемещает Черепашку на X пикселов вперёд. Когда перо опущено Черепашка будет оставлять за собой след. вперёд также может записываться как вп.
назад (нд)
назад X
назад перемещает Черепашку назад на X пикселов. Когда перо опущено Черепашка будет оставлять за собой след. назад также может записываться как нд.
налево (лв)
налево X
налево предписывает Черепашке повернуть на X градусов налево. налево также может записываться как лв.
направо (пр)
направо X
направо предписывает Черепашке повернуть на X градусов направо. направо также может записываться как пр.
направление (нпр)
направление X
направление устанавливает направление Черепашки на X градусов относительно 0, а не относительно предыдущего направления. направление также может записываться как нпр.
Получить_направление
получить_направление
получить_направление возвращает направление Черепашки в градусах относительно нуля, где нулём считает положение Черепашки смотрящей вверх.
Центр
центр
центр перемещает Черепашку в центр холста.
Иди
иди X,Y
иди предписывает Черепашке занять определённое место на холсте. Это место отстоит на X пикселей от левой границы и на Y пикселей от верхней границы холста.
Иди_гор
иди_гор X
иди_гор используется для перемещения Черепашки на X пикселов от левой границы холста, высота остаётся неизменной.
Иди_верт
иди_верт Y
иди_верт предписывает Черепашке переместиться на Y пикселей от верхней границы холста. Положение относительно левой границы остаётся неизменным.
При использовании команд иди, иди_гор, иди_верт и центр Черепашка не будет рисовать линию вне зависимости от того, поднято перо или опущено.
Существует две команды, возвращающие положение Черепашки на экране.
Получить_гор
получить_гор возвращает количество пикселей от левого края холста до текущей позиции Черепашки.
Получить_верт
получить_верт возвращает количество пикселей от верхнего края холста до текущей позиции Черепашки.
У Черепашки есть перо, которым она рисует линию во время перемещения. Есть несколько команд для управления пером. В данном разделе они будут описаны подробно.
перо_подними (пп)
перо_подними
перо_подними отрывает перо от холста. Пока перо оторвано, Черепашка не будет рисовать линию во время перемещений. См. также перо_опусти. перо_подними также может записываться как пп.
перо_опусти (по)
перо_опусти
перо_опусти опускает перо на холст. Когда перо опущено, Черепашка при перемещениях рисует линию. См. также перо_подними. перо_опусти также может записываться как по.
толщина_пера (тп)
толщина_пера X
толщина_пера устанавливает толщину пера (толщину линии) в X пикселов. толщина_пера также может записываться как тп.
цвет_пера (цп)
цвет_пера R,G,B
цвет_пера устанавливает цвет пера. В качестве параметров указывается RGB комбинация. цвет_пера также может записываться как цп.
Существует несколько команд для работы с холстом.
размер_холста (рх)
размер_холста X,Y
размер_холста устанавливает размер холста. В качестве входных параметров задаются ширина X и высота Y в пикселах. размер_холста также может записываться как рх.
цвет_холста (цх)
цвет_холста R,G,B
цвет_холста устанавливает цвет холста. Входным параметром является RGB комбинация. цвет_холста также может записываться как цх.
Существуют две команды очистки холста.
очисти (очс)
очисти
очисти удаляет с холста все рисунки. Всё остальное останется по-прежнему: позиция и угол направления Черепашки, цвет холста, видимость Черепашки и размер холста.
Сброс
сброс
сброс очищает больше, чем команда очисти. После выполнения команды сброс всё будет выглядеть так, как будто вы только что запустили KTurtle. Черепашка будет расположена в центре экрана, цвет холста будет белым, и Черепашка будет рисовать чёрные линии на холсте размером 400 x 400 пикселей.
Большинство людей и понятия не имеют, что такое спрайты, так вот, спрайты — это маленькие картинки, которые можно перемещать по экрану. Так что Черепашка — это спрайт.
Ниже будет дано подробное описание всех команд работы со спрайтами.
[Текущая версия KTurtle пока не поддерживает использование спрайтов, отличных от Черепашки. В ближайшем будущем вы сможете заменить Черепашку на любой другой персонаж по собственному вкусу]
покажи (пж)
покажи
покажи делает Черепашку видимой после того, как она была скрыта. покажи также может записываться как пж.
спрячь (сч)
спрячь
спрячь скрывает Черепашку. Это полезно, когда Черепашка не уместна в ваших рисунках. спрячь также может записываться как сч.
Черепашка может написать всё, что вы ей прикажете.
Напиши
напиши X
напиши используется для указания Черепашке написать что-либо на холсте. В качестве входных параметров можно передавать строки или числа. Вы можете печатать различные числа и строки, комбинируя их вместе оператором +. Вот маленький пример:
$год = 2003
$автор = "Cies"
напиши $автор + " начал проект KTurtle в " + $год + " и до сих пор получает удовольствие от работы над ним!"
Размер_шрифта
размер_шрифта X
размер_шрифта устанавливает размер шрифта, используемый для печати. Входной параметр один. Он должен быть числом. Размер задаётся в пикселах.
Далее перечислены дополнительные математические команды KTurtle.
Округли
округли(x)
округли заданное число до ближайшего целого.
напиши округли(10.8)
вперёд 20
напиши округли(10.3)
Выполняя этот код, Черепашка напечатает числа 11 и 10.
случайное (слч)
случайное X,Y
случайное — команда, которая имеет входные и выходные параметры. На входе требуются два числа. Первое (X) задаёт нижний порог получаемых чисел, второе (Y) задаёт верхний порог. На выходе получается псевдослучайное число, которое не меньше минимума и не больше максимума. Вот маленький пример:
повтори 500 {
$x = случайное 1,20
вперёд $x
налево 10 - $x
}
Используя команду случайное, вы можете привнести немного хаоса в вашу программу.
Остаток
остаток X,Y
остаток возвращает остаток после деления первого числа на второе.
Sqrt
sqrt X
sqrt используется для поиска квадратного корня от числа X.
Pi
pi
Эта команда возвращает константу Пи, 3.14159.
Sin, cos, tg
Sin X
Cos X
Tg X
Эти три команды представляют всемирно известные тригонометрические функции sin, cos и tg. Входной аргумент этих команд, X, является числом.
Arcsin, arccos, arctg
arcsin X
arccos X
arctg X
Вот список обратных тригонометрические функций для sin, cos и tg. Входной аргумент этих функций, X, является числом.
Диалог — маленькое окно, которое обеспечивает обратную связь или запрашивает ввести что-либо. В KTurtle есть две команды для диалога: сообщение и спроси
Сообщение
сообщение X
Команде сообщение требуется передать строку, она будет показана в появившемся окне.
сообщение "Cies начал KTurtle в 2003 сих пор получает удовольствие от работы над ним!"
Спроси
спроси X
спроси принимает на вход строку. Она показывает эту строку во всплывающем диалоге (как и команда сообщение), а также она показывает поле ввода. После того, как пользователь ввёл число или строку, это значение может быть сохранено в переменной или передано как аргумент команде. Например:
$вход = спроси "В каком гору ты родился?"
$выход = 2003 - $вход
напиши "В 2003 тебе было " + $выход + " лет."
Если пользователь ничего не введёт или просто закроет диалог, то переменная будет пустой.
Назначение переменных
Руководство программиста TurtleScript
Вначале рассмотрим переменные, а затем присвоение значений переменным.
Переменные — это слова, начинающиеся с символа $. В редакторе кода они выделяются фиолетовым.
Переменные могут содержать числовые, строковые или логические (истина/ложь) значения. Значение присваивается переменной с использованием символа =. Переменные хранят значения до завершения программы или до того момента, как в переменную будет записано новое значение.
После присвоения значения переменной, вы сможете использовать это значение. Например, в следующем фрагменте кода TurtleScript:
$x = 10
$x = $x / 3
напиши $x
Сперва переменной $x присваивается значение 10. Далее переменной $x присваивается новое значение её самой, разделённой на 3. Фактически это означает, что переменной $x будет присвоен результат 10 / 3. В конце значение переменной $x распечатывается. В строках используется содержимое переменной $x.
Для того чтобы использовать переменную, её надо предварительно назначить. Например:
напиши $n
Даст сообщение об ошибке.
Рассмотрим следующий фрагмент кода TurtleScript:
$a = 2004
$b = 25
# следующая команда напечатает "2029"
напиши $a + $b
назад 30
# следующая команда напечатает "2004 плюс 25 равно 2029"
напиши $a + " плюс " + $b + " равно " + ($a + $b)
В первых двух строках переменные $a и $b устанавливаются равными 2004 и 25. Далее выполняются две команды напиши и, между ними, команда назад 30. Комментарии перед напиши объясняют, что будет напечатано. Команда назад 30 используется здесь для уверенности в том, что каждая новая печать на холст будет на новой строке. Как видите, переменные используются точно также, как и их содержимое — совместно с любыми операторами или как входные данные при вызове команд.
Ещё пример:
$имя = спроси "Как тебя зовут?"
напиши "Привет " + $имя + "! Удачи в изучении искусства программирования..."
Простой и понятный пример. Переменная $имя рассматривается как строка.
Инспектор очень сильно помогает при использовании переменных. Он отображает содержимое всех используемых в данный момент переменных.
Контроль над выполнением
Руководство программиста TurtleScript
Управляющие операторы позволяют вам контролировать процесс выполнения (о чём говорит само их название).
Управляющие операторы выделяются тёмно-зелёным цветом и жирным начертанием шрифта. Скобки, используемые вместе с ними, выделяются чёрным.
Если вы уже немного попрактиковались в программировании в KTurtle, вы могли заметить, что Черепашка может рисовать чересчур быстро. Следующая команда позволяет избежать этого.
Жди
жди X
Команда жди указывает Черепашке подождать X секунд.
повтори 36 {
вперёд 5
направо 10
жди 0.5
}
Данный код рисует круг, при этом после каждого шага Черепашка будет ждать пол секунды. Это создаёт впечатление неторопливого движения.
Если
если логическое значение { ... }
Код, расположенный между скобками, будет выполнен только если в результате вычисления логического значения получится истина.
$x = 6
если $x > 5 {
напиши "$x больше пяти!"
}
В первой строке контейнеру $x присваивается значение 6. Во второй строке оператор сравнения используется для вычисления $x > 5. Если ответом на него будет истина, 6 больше чем 5, управляющий оператор если позволит выполнить код, расположенный между скобками.
Иначе
если логическое значение { ... } иначе { ... }
иначе может быть дополнением к оператору условного выполнения если. Код между скобками, расположенными после иначе будет выполнен тогда, когда логическое выражение будет ложь.
Сброс
$x = 4
если $x > 5 {
напиши "$x больше пяти!"
}
иначе
{
напиши "$x меньше пяти!"
}
Оператор сравнения вычисляет выражение $x > 5. Так как 4 не больше, чем 5, результатом будет ложь. Это означает, что будет выполнен код между скобками после иначе.
Пока
пока логическое значение { ... }
Управляющий оператор пока очень похож на если. Разница в том, что пока будет повторять код, расположенный между скобками, до тех пор, пока логическое выражение не выдаст значение ложь.
$x = 1
пока $x < 5 {
вперёд 10
жди 1
$x = $x + 1
}
В первой строке $x присваивается 1. На второй строке выполняется сравнение $x < 5. Так как получаемое значение — истина, оператор пока начнёт выполнять код между скобками, пока не будет получена ложь. В данном случае код между скобками будет выполнен 4 раза, потому что на каждом прогоне в пятой строке $x будет увеличиваться на 1.
Повтори
повтори число { ... }
Управляющий оператор повтори похож на пока. Разница в том, что повтори повторяет код в скобках заданное число раз.
Для
для переменная = число до число { ... }
Цикл для — это цикл со счётчиком, то есть он сохраняет счётчик для вас. Первое число задаёт значение для первого прохода. С каждым проходом это значение увеличивается до того момента, пока не достигнет второго числа.
для $x = 1 до 10 {
напиши $x * 7
вперёд 15
}
Каждый раз, когда выполняется код в скобках, значение $x увеличивается на 1, и так до тех пор, пока $x не станет равным 10. Код в скобках выводит на печать произведение $x и 7. После завершения выполнения программы вы увидите на холсте таблицу умножения на 7.
По умолчанию, шаг цикла равен 1. Вы можете задать другой шаг цикла с помощью
для переменная = число до число шаг шаг { ... }
Прекрати
прекрати
Немедленно завершает выполнение текущего цикла и передаёт управление оператору, следующему сразу после этого цикла.
Закончить
закончить
Заканчивает выполнение программы.