1. El lenguaje BASIC Gambas
Vamos a definir la sintaxis e instrucciones más importantes del
lenguaje BASlC que usa Gambas. Buena parte de estas instrucciones
existen en el BASIC estándar y algunas otras son extensiones propias de
Gambas.
Al principio utilizaremos ejemplos de código de consola, como vimos
en el primer ejemplo. Haciéndolo de este modo evitaremos las
interferencias que puede suponer la explicación de conceptos
relacionados con la programación gráfica y los componentes. Estos
conceptos se explicarán con extensión en prácticas posteriores.
2. Organización de un proyecto de Gambas
Antes de comenzar con la programación básica hay que resumir algunos conceptos previos:
- El código fuente de los programas hechos en
Gambas está compuesto de uno o más archivos que forman un proyecto. Este
proyecto se archiva en un directorio del mismo nombre.
- Los archivos de código pueden ser: Módulos (contienen código en BASIC que se ejecuta directamente) y Formularios (áreas donde se diseña la interfaz gráfica de la aplicación y que se corresponden con las ventanas del programa).
- Los proyectos de texto sólo contienen Módulos. Las aplicaciones
gráficas contienen Formularios, pero también pueden contener Módulos.
3. Declaración de variables
Los programas manejan datos continuamente. Estos datos pueden ser de
muchos tipos: números, letras, textos, etc. En un programa existen 2
clases de datos según su uso:
- Variables. Su valor cambia a lo largo de la ejecución del programa.
- Constantes. Su valor permanece con un valor fijo durante todo el tiempo.
A los datos que usa un programa se les asigna un nombre identificador.
BASIC permitía usar variables y constantes sin haberlas declarado
antes. Para evitar programas ilegibles y errores, Gambas obliga a
declarar las constantes y las variables antes de utilizarlas.
3.1. Variables
Las variables se declaran al principio del archivo de código
(Módulo). Están disponibles para todo el código de ese archivo, en todas
sus subrutinas.
Para declarar una variable al principio del Módulo usamos la sintaxis:
(PUBLIC | PRIVATE) nombre_variable AS tipo_variable
Si se define la variable como PRIVATE, estará disponible dentro de
todo el fichero, pero no será accesible desde otros ficheros del mismo
proyecto. Si se declara como PUBLIC, se podrá acceder a la variable
desde un fichero del proyecto distinto a donde se declaró.
Para declarar una variable dentro de un procedimiento o función usamos la sintaxis:
DIM nombre_variable AS tipo_variable
3.2. Constantes
Las constantes se definen sólo al principio de un archivo de Módulo.
No se pueden definir dentro de las subrutinas y funciones. La sintaxis
es:
(PUBLIC | PRIVATE) CONST nombre_constante AS tipo_constante = valor
Por tanto, al igual que las variables, pueden ser privadas o públicas.
4. Tipos de datos
Gambas soporta los siguientes tipos de datos:
Tipo de datos |
Descripción |
Boolean |
Es un tipo de dato que suele
ser el resultado de una comparación. Sólo acepta dos valores : False
y True (Falso y Verdadero en español). |
Byte |
Representa un número entero positivo entre 0 y 255. |
Short |
Representa un número entero con valores posibles entre -32.768 y +32.767. |
Integer |
Representa un número entero con valores posibles entre -2.147.483.648 y +2.147.483.647. |
Long |
Representa un número entero con valores posibles entre -9.223.372.036.854.775.808 y +9.223.372.036.854.775.807 |
Single |
Representa un número real, con decimales, con valores posibles entre -1,7014118E+38 y +1,7014118E+38. |
Float |
Representa un número real, con decimales, con valores posibles entre -8,98846567431105E+307 y +8,98846567431105E+307. |
Date |
Sirve para almacenar un valor
de fecha y hora. Internamente, se almacena en formato UTC, al
devolver el dato se representa en el formato local, según la
configuración del ordenador. |
String |
Se usa para almacenar una cadena de texto. En BASIC las cadenas de texto se asignan mediante dobl es comillas. |
Variant |
Significa cualquier tipo de
dato, es decir, pued e almacenar un lnteger, Single, String, etc. Se
debe evitar su uso porque ocupa más memoria que los anteriores y
los cálculos con Variant son mucho más lentos. |
Object |
Representa cualquier objeto creado en Gambas. |
A continuación se muestra una tabla resumen con el espacio que ocupan en memoria y los valores por defecto:
Tipo de dato |
Descripción |
Valor por defecto |
Tamaño en memoria |
Boolean |
Verdadero o falso. |
FALSE |
1 byte |
Byte |
0...255 |
0 |
1 byte |
Short |
-32.768...+32.767 |
0 |
2 bytes |
Integer |
-2.147.483.648...+2.147.483.647 |
0 |
4 bytes |
Long |
-9.223.372.036.854.775.808...
+9.223.372.036.854.775.807 |
0 |
8 bytes |
Single |
Como el tipo float de C. |
0.0 |
4 bytes |
Float |
Como el tipo double de C. |
0.0 |
8 bytes |
Date |
Fecha y hora, cada una almacenada en un entero. |
NULL |
8 bytes |
String |
Una cadena con un número variable de caracteres. |
NULL |
4 bytes |
Variant |
Cualquier tipo de dato. |
NULL |
12 bytes |
Object |
Referencia anónima a un objeto. |
NULL |
4 bytes |
Pointer |
Una dirección de memoria. |
0 |
4 bytes |
Será el programador el que elija el tipo de dato con el que debe ser
declarada una variable. Siempre se ha de tender a usar los tipos de
datos más pequeños, puesto que ocupan menos memoria y el microprocesador
los maneja con más velocidad. Sin embargo, eso puede limitar las
opciones de la aplicación, por lo que a menudo se opta por tipos mayores
para no cerrar posibilidades.
5. Asignación de variables
Puede asignarse cualquier valor a una variable en Gambas mediante la siguiente sintaxis:
Variable = Expresión
Donde Expresión representa cualquier valor numérico, cadena de texto, nombre de variable, etc.
Declaración de variables
Esto sirve para indicarle a Gambas que vamos a utilizar 4 variables
en nuestro programa. Aquí declaramos 4 variables de diferentes tipos,
pero no hacemos nada más.
PUBLIC iMiValor AS Integer 'variable de tipo entero (Integer)
PUBLIC sMiNombre AS Sring 'variable de tipo texto (String)
PUBLIC fMiNumero AS Float 'variable de tipo real (Float)
PUBLIC sTuNombre AS String ' variable de tipo texto (String)
Asignación de valores
iMiValor = 1982 ' la variable toma el valor entero 1982
sMiNombre = "Juan" ' la variable toma el valor del texto “Juan” fMiNumero = 123.45 ' la variable toma el valor real 123.45 sMiNombre = sTuNombre ' a la 1ª variable se le asigna el valor de la 2ª variable
6. Comentarios en BASIC
En todos los lenguajes de programación resulta muy conveniente
documentar los programas, con comentarios que describan la función de
los distintos bloques que constituyen el programa. En BASIC los
comentarios se escriben siempre con una comilla simple delante. Por
ejemplo:
'Esto es un comentario
|