Exponenciación | Factorial | División | División (con falla) |
---|---|---|---|
?x; ?y; r:=1; while y>0 do r:=r*x; y:=y-1 od; !r | y:=1; f:=1; ?x; while x>=y do f:=f*y; y:=y+1 od; !f | q:=0; ?x; ?y; r:=x; while r>=y do q:=q+1; r:=r-y od; !r; !q | q:=0; ?x; ?y; if y=0 then fail DivZero else r:=x; while r>=y do q:=q+1; r:=r-y od; !q; !r fi |
Exponenciación (mejorado) | Fibonnaci de un número | Fibonnaci desde 1 hasta un número |
---|---|---|
catch ExpNeg in ?x; ?y; if y<0 then fail ExpNeg else r:=1; while y>0 do r:=r*x; y:=y-1 od; !r fi {fail CanNotDealWithReals} | ni:=0; nj:=1; ?x; y:=0; for i:=1 to x do newvar t:=ni+nj { ni:=nj; nj:=t }; i:=i+1 od; !nj | ni:=0; nj:=1; ?x; y:=0; for i:=1 to x do newvar t:=ni+nj { ni:=nj; nj:=t }; !nj; i:=i+1 od |
Primo o compuesto (muy ineficiente) |
---|
?x; i:=2; while i<x do if x rem i=0 then break else i:=i+1 fi od; if i<x then fail NotPrime else fail Prime fi |