&R0B^SI<
Manual
de usuario en español de
AndroBasic
for Android
versión 001
Jordi
Sorroche Pérez
jsptron@gmail.com
Barcelona
Agosto 2013
¿Qué es
AndroBasic?
Es un intérprete
del lenguaje de programación Basic (Beginners All-purpose
Symbolic Instruction Code) especialmente diseñado para tabletas
con una resolución en pantalla de 1280 x 800 píxeles y sistema
operativo Android.
Funcionamiento
y entorno de programación de AndroBasic:
Al ejecutar
AndroBasic nos aparecerá la pantalla del editor –con fondo
azul y con la subrutina SUB MAIN/END SUB- indicándonos que podemos
comenzar a programar.
En la parte
superior derecha tenemos unos iconos junto con un menú desplegable
con las siguientes opciones:
New:
Se crea un nuevo
programa.
Undo:
Deshace el último
cambio realizado en el editor.
Redo:
Rehace el último
cambio realizado en el editor.
Run:
Pulsaremos sobre
esta opción para ejecutar el programa que se halle en ese momento en
el editor.
Load Program:
Permite cargar un
programa desde la tarjeta SD -interna- instalada en nuestra Tableta a
la memoria del dispositivo.
También podemos
importar un programa desde el correo electrónico. Para ello, abrimos
el e-mail en concreto, guardamos el archivo adjunto (el programa) y
lo guardamos en la ubicación (//SD/AndroBasic_Programs), así de
simple.
Save Program:
Con esta opción,
podremos guardar el programa que hallamos creado en la tarjeta
SD-interna- de nuestra Tableta.
También podemos
exportar el programa mediante el correo electrónico.
Para ello, nos
vamos a la opción de archivos –en le menú de Android- (en la
ubicación //SD/AndroBasic_Programs) . Escogemos el que nos interesa,
y le damos la opción ‘compartir-enviar correo Elec..’, como
archivo adjunto, así de sencillo.
Change
Time Process:
Nos brinda la
posibilidad de cambiar el tiempo de proceso en la ejecución de un
programa -en milisegundos- entre instrucción e instrucción. Por
defecto, viene parametrizado con valor de 10, pudiéndose cambiar
este valor a un mínimo de 1 y un máximo de 2000 ( 2 segundos). Es
importante remarcar que no se debe abusar de tiempos realmente
cortos, ya que nuestro dispositivo tiene que procesar otras tareas
aparte de las nuestras, y que esto puede conllevar al mal
funcionamiento del programa. Sin contar del sobrecalentamiento y a un
consumo excesivo de la batería.
Help:
Tutorial del
funcionamiento del programa en inglés/español.
About:
Acerca de la
creación de AndroBasic.
Exit app:
Sale de la
aplicación.
Nuestro primer programa escrito en
AndroBasic:
Vamos hacer un sencillo programa al
que llamaremos 'Hola Mundo'.
En
el editor, dentro de la subrutina Sub Main/End Sub, escribiremos
Print "Hola Mundo” el programa quedaría así:
Sub
Main
Print “Hola Mundo”
End
Sub
Ahora
vamos a ejecutarlo pulsando sobre el icono 'Run'.
Vemos que aparece en pantalla la frase
'Hola Mundo'.
Información detallada de las
instrucciones/funciones del lenguaje Basic que soporta AndroBasic
ordenadas alfabéticamente:
ABS
Devuelve
el valor absoluto.
Ejemplo:
x=-1
Print Abs(x)
Resultado:
1
ACOS
Devuelve
el coseno de un ángulo expresado en radianes.
Ejemplo:
x=0.4
Print Acos(x)
Resultado:
1.15928
ACOSD
Devuelve
el coseno de un ángulo expresado en grados.
Ejemplo:
x=0.4
Print Acosd(x)
Resultado:
66.42182
ASC
Devuelve
un número correspondiente al código de carácter ASCII (American
Standar
Code
for Information
Interchange).
Ejemplo:
x=”@”
Print Asc(x)
Resultado:
64
ASIN
Devuelve
el seno de un ángulo expresado en radianes.
Ejemplo:
x=0.4
Print Asin(x)
Resultado:
0.41152
ASIND
Devuelve
el seno de un ángulo expresado en grados.
Ejemplo:
x=0.4
Print Asind(x)
Resultado:
23.57818
ATAN
Devuelve
el ángulo tangente expresado en radianes.
Ejemplo:
x=0.4
Print Atan(x)
Resultado:
0.38051
ATAND
Devuelve
el ángulo tangente expresado en grados.
Ejemplo:
x=0.4
Print Atand(x)
Resultado:
21.80141
BEEP
Genera
un sonido de corta duración.
BUTTONS OFF
Oculta
de la pantalla los cinco botones.
BUTTONS ON
Se muestran en pantalla cinco botones
pudiendo controlar que botón ha sido pulsado gracias a la variable
interna del sistema but.
Estos son los valores que devuelve la
variable but al pulsar uno de los cinco botones:
Botón1=1,
botón2=2, botón3=3, botón4=4 y botón5=5.
Para
inicializar but,
podemos usar el valor 0: but=0.
CALL
Llama
a la subrutina con el nombre especificado.
Ejemplo:
Call
nombresubrutina
CHR
Da
un carácter correspondiente al valor del código numérico ASCII.
Ejemplo:
x=64
Print Chr(x)
Resultado:
@
CLS
Borra
la pantalla.
COLORINK
Define el color del primer plano según
el código de color [mirar la tabla de Códigos de color].
Ejemplo:
x=5
Colorink(x)
Print “Hola”
Resultado:
Hola [se visualiza el texto en color verde]
COLORPAPER
Define el color de fondo según el
código de color [mirar la tabla de Códigos de color].
Ejemplo:
x=4
Colorpaper(x)
Resultado:
[se visualiza el fondo de pantalla en color rojo]
COS
Devuelve
el coseno expresado en radianes.
Ejemplo:
x=0.4
Print Cos(x)
Resultado:
0.92106
COSD
Devuelve
el coseno expresado en grados.
Ejemplo:
x=0.4
Print Cosd(x)
Resultado:
0.99998
DO
Inicia
el bucle Do...Loop...
DO UNTIL
Inicia
el bucle Do
Until...Loop...y
continua con el ciclo hasta que se cumpla la condición.
DO WHILE
Inicia
el bucle Do
While...Loop...y
continua con el ciclo mientras se cumpla la condición.
ELSE
Sí
la condición precedida de If...Then
no se cumple, se procesan las instrucciones justo por debajo de
Else hasta
End If.
ELSEIF...THEN
Hace
la misma función que Else pero añadiendo condición exclusiva.
END IF
Acaba
con el condicional If...Then/Else.
END SUB
Finaliza
la subrutina Sub...End
Sub.
EXIT DO
Sale
del bucle Do...Loop...
EXIT FOR
Sale
del bucle For...Next.
EXIT SUB
Sale
de la subrutina Sub...End
Sub.
FLOOR
Devuelve
el íntegro.
Ejemplo:
x=1.4
Print Floor(x)
Resultado:
1
FOR...TO...STEP
Inicia
un bucle For...Next hasta
un número de veces.
IF...THEN
Condiciona
dos elementos o más y si se cumple, se procesan las instrucciones
justo por debajo de
If...Then hasta
Else/End If.
INPUTBOX
Recoge
los datos introducidos por el usuario y los transfiere a una
variable.
Ejemplo:
Inputbox “Introduzca un nombre”;x
Print “El nombre introducido es “ & x
Resultado:
Introduzca un nombre [David]
El nombre introducido es David
LEN
Devuelve
la longitud de una cadena.
Ejemplo:
x=”Barcelona”
Print Len(x)
Resultado:
9
LINE
Dibuja
una línea de color [mirar la tabla de Códigos
de color] hasta las
coordenadas X e Y -final-.
Las
coordenadas X e Y iniciales las aporta la instrucción Point
o en su caso, la última vez que se haya llamado la instrucción
Line.
Si
no se llama por primera vez a la instrucción Point
el
valor origen de las coordenadas X e Y valdrán 0.
Ejemplo:
Point(0,400,6) [X,Y,Color]
Line(1280,400,6) [X,Y,Color]
Resultado:
[Dibuja una línea horizontal en el centro de la pantalla de color
azul]
LN
Da
el logaritmo en base e.
Ejemplo:
x=1000
Print Ln(x)
Resultado:
6.90775
LOG
Da
el logaritmo en base 10.
Ejemplo:
x=1000
Print Log(x)
Resultado:
3
LOGARITHM
Da
el logaritmo en cualquier base.
Ejemplo:
x=1000
b=10 [base]
Print Logarithm(x,b)
Resultado:
3
LOOP
Cierra
el bucle Do...Loop
y continua con el ciclo.
LOOP UNTIL
Cierra
el bucle Do...Loop Until
y
continua con el ciclo hasta que se cumpla la condición.
LOOP WHILE
Cierra
el bucle Do...Loop While
y
continua con el ciclo mientras se cumpla la condición.
MAX
Devuelve
entre dos números el más grande.
Ejemplo:
Print Max(4,9)
Resultado:
9
MID
Selecciona
caracteres desde una cadena entre la posición inicial hasta la
longitud especificada.
Ejemplo:
x=”Barcelona”
Print Mid(x,4,3)
Resultado:
cel
MIN
Devuelve
entre dos números el más pequeño.
Ejemplo:
Print Min(9,4)
Resultado:
4
MOD
Devuelve
el resto después de dividir un número entre un divisor.
Ejemplo:
Print Mod(3,2) [numero,divisor]
Resultado:
1
MSGBOX
Muestra
en la pantalla superior el texto y espera a que se pulse 'Aceptar'.
Ejemplo:
Msgbox “Piense un numero”
Resultado:
Piense un numero
NEXT
Cierra
el bucle For...Next
y continua con el ciclo.
PAUSE
Detiene
la ejecución del programa durante un tiempo expresado en
milisegundos.
Ejemplo:
Pause(1000)
Resultado:
[Detiene el proceso en 1 seg.]
POINT
Dibuja
un punto de color [mirar la tabla de Códigos
de color] en las
coordenadas X e Y.
Ejemplo:
Point(640,400,6) [X,Y,Color]
Resultado:
[Dibuja un punto en el centro de la pantalla de color azul]
POWER
Eleva
a la potencia.
Ejemplo:
x=2
e=8
Print Power(x,e)
Resultado:
256 [el valor 2 se eleva a la potencia de 8]
PRINT
Imprime
en pantalla un texto.
Ejemplo:
Print “Hola Mundo”
Resultado:
Hola Mundo
RANDOMIZE
Inicializa
la semilla de la secuencia pseudoaleatória basado en el reloj
interno del sistema.
REM
No
hay proceso alguno, simplemente podremos comentar las diferentes
líneas de nuestro programa.
Ejemplo:
Rem Proceso de encriptación
RND
Genera
un número pseudoaleatório entre los rangos de min y máx
(inclusive).
Ejemplo:
min=1
max=10
Print Rnd(min, max)
Resultado:
4
ROUND
Redondea
un número.
Ejemplo:
x=1.5
Print Round(x)
Resultado:
2
SIN
Devuelve
el seno expresado en radianes.
Ejemplo:
x=0.4
Print Sin(x)
Resultado:
0.38942
SIND
Devuelve
el seno expresado en grados.
Ejemplo:
x=0.4
Print Sind(x)
Resultado:
0.00698
SQRT
Halla
la raíz cuadrada.
Ejemplo:
x=2
Print Sqrt(x)
Resultado:
1.414214
STOP
Detiene
la ejecución del programa.
SUB
Nombra
a la subrutina Sub...End
Sub.
Ejemplo:
Sub nombresubrutina
TAN
Devuelve
la tangente expresado en radianes.
Ejemplo:
x=0.4
Print Tan(x)
Resultado:
0.42279
TAND
Devuelve
la tangente expresado en grados.
Ejemplo:
x=0.4
Print Tand(x)
Resultado:
0.00698
Características
especiales del lenguaje Basic de AndroBasic:
No son admitidos los dos puntos ':'
para separar instrucciones/funciones en la misma línea.
En un condicional,
-después de la instrucción Then y
en la misma línea- no puede haber nada escrito.
Las variables no
son sensibles si se escriben en mayúsculas/minúsculas y son
convertidas internamente en mayúsculas.
En los
condicionales no son admitidos los paréntesis.
Sólo se admiten
30 parámetros por línea como máximo.
Los programas no
pueden contener más de 2.000 líneas.
Las constantes
como PI y E se escriben como CPI y CE respectivamente.
Tanto las
variables como la matriz son del tipo genéricos, o sea, pueden
contener números o cadenas. Ejem: a=5 o a="hola".
Las
variables/matriz no se declaran.
No es necesario
inicializar las variables/matriz pero sí recomendable -sobre todo en
cálculos matemáticos-.
Se pueden utilizar
hasta un máximo de 100 variables.
Sólo podemos
utilizar una Matriz llamada matrix(a,b) siendo
‘a’ el índice y ‘b’ el subíndice de la tabla. El valor
máximo de índices para la matriz es de 10.000 por 10 de
subíndices.
Se pueden utilizar
hasta un máximo de 100 subrutinas.
En cualquier
momento de la ejecución de un programa, podemos abortarlo
simplemente pulsando el icono 'Back' -en la parte inferior izquierda
de la pantalla-.
Operadores aritméticos:
+ [Adición]
- [Sustracción]
* [Multiplicación]
/ [División]
^ [Exponenciación]
% [Módulo aritmético]
Operadores relacionales:
= [es igual que]
<> [no es igual que]
< [es menor que]
> [es mayor que]
<= [es menor o igual que]
>= [es mayor o igual que]
Operadores de cadena:
&
[unión de cadenas]
Operadores lógicos:
And [dos elementos son verdaderos]
Or [al menos uno de los elementos es
verdadero]
Xor [sólo un elemento es verdadero]
Códigos de color:
0 = negro
1 = gris oscuro
2 = gris medio
3 = gris claro
4 = rojo
5 = verde
6 = azul
7 = amarillo
8 = magenta
9 = cían
10 = blanco
Listado de
errores:
Nº1: 'If' without 'Else/ElseIf/End
If'
Nº2: program without 'Sub Main'
Nº3: Too many parameters per line:
(max.30)
Nº4: Syntax
Nº5: General process
Nº6: calculation parameters
Nº7: expected 'End Sub'
Nº8: 'For' without 'Next'
Nº9: 'Next' without 'For'
Nº10: 'Exit For' without 'Next'
Nº11: 'Call X' not found
Nº12: 'Exit Sub' without 'End Sub'
Nº13: 'Do Until' without 'Loop'
Nª14: 'Loop' without 'Do Until/Do
While'
Nº15: 'Exit Do' without 'Loop'
Nº16: 'Do While' without 'Loop'
Nº17: 'Loop Until' without 'Do'
Nº18: 'Loop While' without 'Do'
Nº19: 'Else' without 'End If'
Nº20: Too many variables (max.100)