]]> ]]>

boo 0.8.2

Версия реализации Boo языка программирования Boo

Версия языка boo, выпущенная 19 мая 2008 года.

Примеры:

Hello, World! - Boo (16):

print("Hello, World!")

Факториал - Boo (17):

Используется рекурсивное определение факториала. Из-за того, что функция factorial вызывается рекурсивно, для нее необходимо объявление типа возвращаемого значения.

def factorial(n as long) as long:
    if n == 0:
        return 1
    else:    
        return n * factorial(n - 1)

for n in range(0, 17):
	print("${n}! = ${factorial(n)}")

Факториал - Boo (222):

В примере используется итеративное определение факториала. Переменная fact объявляется как принадлежащая к типу long в явном виде; иначе ее тип будет автоматически определен как int, и вычисление 13! вызовет ошибку переполнения.

fact as long = 1
for i in range(17):
    print("${i}! = ${fact}")
    fact = fact * (i+1)

Числа Фибоначчи - Boo (223):

Используется итеративное определение чисел Фибоначчи.

a = array(int, 16)
a[0] = a[1] = 1
for i in range(2,16):
    a[i] = a[i-1] + a[i-2]
s=""
for i in range(16):
    s = s + a[i] + ", "
print(s + "...")

Числа Фибоначчи - Boo (224):

В этом примере показано использование генератора fib — конструкции, которая инициализирует внутренние переменные a и b и при каждом следующем обращении изменяет их значения и выдает наружу. Функция zip “склеивает” элементы двух перечислений (в данном случае range(16) и генератора) в пары, создавая новое перечисление.

def fib():
    a, b = 0, 1
    while true:
        yield b
        a, b = b, a + b
 
s=""
for i, n in zip(range(16), fib()):
    s = s+n+", "
print(s+"...")

Квадратное уравнение - Boo (267):

A = int.Parse(prompt("A = "))
if A==0 :
    print "Not a quadratic equation."
    return
B = int.Parse(prompt("B = "))
C = int.Parse(prompt("C = "))
D = B*B-4*A*C
if D==0 :
    x = -0.5*B/A
    print "x = ${x}"
    return
if D>0 :
    x1 = 0.5*(-B-System.Math.Sqrt(D))/A
    x2 = 0.5*(-B+System.Math.Sqrt(D))/A
    print "x1 = ${x1}"
    print "x2 = ${x2}"
else :
    r = -0.5*B/A
    i = 0.5*System.Math.Sqrt(-D)/System.Math.Abs(A)
    print "x1 = (${r},${i})"
    print "x2 = (${r},-${i})"
    

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам