Logo
- Дата создания:
- 1967
- Создан под влиянием:
- Повлиял на:
- Парадигма:
- Типизация:
- Принятые расширения файлов:
- .lg
- Реализации и версии (свернуть все | развернуть все):
Logo — функциональный язык программирования, используемый преимущественно в образовательных целях.
Элементы синтаксиса:
Комментарий до конца строки | ; |
---|---|
Регистрозависимость | нет |
Присваивание значения переменной | make "varname value |
Группировка выражений | ( ... ) |
Блок | [ ... ] |
Равенство | = |
Неравенство | <> |
Тождественное равенство | .eq |
Сравнение | < > <= >= |
Определение функции | to f :para1 :para2 ... end |
Вызов функции | f a b ... |
Вызов функции без параметров | f |
Если - то | if condition [trueBlock] |
Если - то - иначе | ifelse condition [trueBlock] [falseBlock] |
Бесконечный цикл | forever |
Цикл с предусловием | while condition [loopBody] |
Цикл с постусловием | until condition [loopBody], do.while [loopBody] c |
Цикл for - next для диапазона целых чисел с инкрементом на 1 | for [i 1 10 +1] [loopBody] |
Цикл for - next для диапазона целых чисел с декрементом на 1 | for [i 1 10 -1] [loopBody] |
Примеры:
Hello, World!:
Пример для версий UCBLogo 6.0print [Hello, World!]
Числа Фибоначчи:
Пример для версий UCBLogo 6.0Используется рекурсивное определение чисел Фибоначчи. В примере определяются две функции — fibonacci
для вычисления значения N-ого числа Фибоначчи и print_fibonacci
, которая накапливает числа в строке и выводит их на печать.
to fibonacci :N
ifelse :N < 3 [output 1] [output sum fibonacci :N - 1 fibonacci :N - 2]
end
to print_fibonacci :i :N
make "str fibonacci :i
make "i sum :i 1
make "comma ",
repeat :N - :i + 1 [make "str (word :str :comma fibonacci :i)
make "i sum :i 1]
make "str word str ",...
print str
end
print_fibonacci 1 16
Факториал:
Пример для версий UCBLogo 6.0Используется рекурсивное определение факториала. В примере определяются две функции — factorial
, вычисляющая N!, и print_factorial
, которая выводит факториалы чисел от i до N.
to factorial :N
ifelse :N = 0 [output 1] [output :N * factorial :N - 1]
end
to print_factorial :i :N
repeat :N - :i + 1 [(print :i [! =] factorial :i)
make "i sum :i 1]
end
print_factorial 0 16
Квадратное уравнение:
Пример для версий UCBLogo 6.0В этом примере определяется функция, принимающая в качестве аргументов коэффициенты квадратного уравнения и выводящая на печать его корни.
to quadratic :A :B :C
if :A = 0 [(print [Not a quadratic equation.])
stop
]
make "D :B*:B - 4*:A*:C
if :D = 0 [(print [x = ] -:B/2/:A)
stop
]
if :D > 0 [(print [x1 = ] (-:B+sqrt :D)/2/:A)
(print [x2 = ] (-:B-sqrt :D)/2/:A)
stop
]
(print [x1 = (] -:B/2/:A [,] (sqrt (-:D))/2/A [)])
(print [x2 = (] -:B/2/:A [,] (-sqrt (-:D))/2/A [)])
end
Комментарии
]]>blog comments powered by Disqus
]]>