====== Programas de ejemplos para probar el intérprete ======
^ 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 |