Scratch 1.4
Версия реализации Scratch языка программирования ScratchВерсия среды разработки Scratch.
Примеры:
Hello, World! - Scratch (194):
Летучая мышь — спрайт, ассоциированный скрипт которого состоит из единственного блока — вывода “Hello, World!”. Приведены две версии примера — для англоязычного интерфейса и локализованная.
say Hello, World!
Hello, World! на Scratch
Hello, World! на Scratch (рус.)
Факториал - Scratch (195):
strs
— массив строк переменной длины. Блок delete all
необходим, чтобы очистить массив перед повторным запуском программы. repeat
— цикл, повторяющий свое тело заданное количество раз. join
— блок конкатенации аргументов. hide
скрывает аватар спрайта (чтобы освободить больше места).
Scratch не поддерживает ни стандартный поток вывода, ни возможность “сказать” сообщение из нескольких строк, поэтому для вывода примера в нужной форме использовался массив.
delete all of strs
set i to 0
set f to 1
repeat 17
add (join i (join (! = ) f)) to strs
set i to (i + 1)
set f to (f * i)
hide
Факториал на Scratch
Числа Фибоначчи - Scratch (196):
В Scratch нет простого способа определить функцию, поэтому используется итеративное определение чисел Фибоначчи.
set f1 to 1
set f2 to 1
set str to f1
repeat 15
set f3 to (f1 + f2)
set f1 to f2
set f2 to f3
set str to join (str (join (,) f1))
say join (str (...))
Числа Фибоначчи на Scratch
Квадратное уравнение - Scratch (197):
Этот пример демонстрирует использование ввода пользовательских данных в Scratch командой ask "..." and wait
. В результате этой команды спрайт “говорит” заданное сообщение (приглашение к вводу), и под спрайтом показывается окно ввода. Когда информация введена, ее можно получить через предопределенную переменную answer
. При вводе нескольких значений подряд каждое из них следует скопировать в локальную переменную, прежде чем переходить ко вводу следующего.
ask "A = ?" and wait
set A to answer
if A = 0
say "Not a quadratic equation"
else
ask "B = ?" and wait
set B to answer
ask "C = ?" and wait
set C to answer
set D to B*B + (-4)*A*C
set re to B/(-2*A)
if D = 0
say join ("x = " re)
else
set im to (sqrt of (abs of D)) / (2*A)
if D > 0
say join (join ("x1 = " (re+im)) join (", x2 = " (re-im)))
else
say join (join ("x1 = (" join (re join (", " im))) join ("), x2 = (" join (re join (", -" join (im ")")))))
Квадратное уравнение на Scratch
CamelCase - Scratch (291):
Эту задачу нельзя решить с использованием только стандартных блоков Scratch; придется воспользоваться скрытыми возможностями среды разработки. В этом руководстве детально описано, как добавить к стандартным блокам еще два, которые будут преобразовывать символ в его ASCII-код (блок “ascii code of _”) и наоборот (“ascii _ as letter”). После добавления этих блоков остаток программы вполне тривиален.
Отметим, что индекс массива начинается с 1, а в условиях циклов и условных переходов логические значения приходится сравнивать с true
и false
в явном виде.
CamelCase на Scratch
Комментарии
]]>blog comments powered by Disqus
]]>