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 
   |