Gambas/Conceptos básicos de programación
Tipos de Datos
editarLos datos son abstracciones del mundo real que son necesarias para la resolución de una tarea y están representadas de forma que puedan ser procesadas por la computadora. Un dato puede ser único elemento o un conjunto de ellos que aporte información sobre el problema.
Si el dato está formado exclusivamente por números, será de tipo numérico. Si está formado por letras será de tipo alfanumérico, ya que puede contener datos numéricos, caracteres especiales y letras. los datos lógicos o “booleanos”, únicamente pueden tomas dos valores: Cierto (True) o Falso (False).
Los datos pueden ser variables y constantes.
Tipo | Rango de Valores |
---|---|
Boolean | Verdadero o Falso |
Byte | 0 a 255 |
Short | -32.768 a +32.767 |
Integer | -2.147.483.648 a +2.147.483.647 |
Long | -9.223.372.036.854.775.808 a +9.223.372.036.854.775.807 |
Single | Igual que el tipo float en C |
Float | Igual que el tipo double en C |
Date | Fecha y Hora, cada uno almacenado como un entero |
String | Una cadena de caracteres de longitud variable |
Variant | Cualquier tipo de dato |
Object | Referencia anónima a cualquier objeto |
Pointer | Una dirección de memoria |
Variables
editarUna variable es un dato que se almacena en la memoria de la computadora, del que su valor puede variar a lo largo de la ejecución del programa. Una variable, en general, consta de: un identificador o nombre, que es una cadena de caracteres que sirve para referenciarla, y un valor.
Declaración
editar- Sintaxis
[STATIC] {PUBLIC|PRIVATE} Identifier [Static array declaration] AS Datatype [=Expression]
STATIC PUBLIC GridX AS Integer STATIC PRIVATE bGrid AS Boolean PUBLIC Name AS String PRIVATE Control AS Object PRIVATE Languages AS String[] = [ "fr", "it", "es", "de", "ja" ] PRIVATE DefaultLanguage AS String = Languages[1]
'Todas las declaraciones DIM debe estar en FUNCTION o SUB antes de cualquier comando ejecutable DIM fTimeDiff2 AS Float DIM iTest AS Integer DIM iK[9] AS Integer 'ik[0] to ik[8] DIM shX[3,3] AS Short DIM date1 AS Date
- Sintaxis
[STATIC] {PUBLIC|PRIVATE} Identifier AS NEW Native Datatype [Array dimensions...]
PUBLIC CONST WORD_MAX AS Integer = 12 PRIVATE Words AS NEW String[WORD_MAX * 2] PUBLIC Matrix AS NEW Float[3, 3]
Asignación
editarDestination = Expression iVal = 1972 Name = "Gambas" hObject.Property = iVal cCollection[sKey] = Name
Constantes
editarUna Constante es un dato almacenado en la computadora del que su valor se mantiene fijo o constante durante la ejecución del programa. Las constantes pueden representarse:
- Indicando su valor (por ejemplo, 3.14, 13033 o "Este texto" son datos constantes de distinto tipo, o
- Empleando un identificador o nombre que permita hacer referencia a su valor en el programa. Imagina que asignamos al identificador “pi” el valor constante 3.14159. El identificador es más fácil de recordar que el valor y hace que el programa sea más sencillo de modificar si el valor de la constante variase, ya que bastará con actualizar el valor asignado al identificador.
- Sintaxis
{PUBLIC|PRIVATE} CONST Identifier AS Datatype = Constant value
'Los tipos de datos de las Constantes pueden ser: Boolean, Integer, Long, Float o String PUBLIC CONST MAX_FILE AS Integer = 30 PRIVATE CONST DEBUG AS Boolean = TRUE PRIVATE CONST MAGIC_HEADER AS String = "# Gambas form file"
Operadores
editarAritméticos
editarA = Numero1 + Numero2 'Suma dos números A =- Numero 'Calcula el signo opuesto de un numero. El cero es el opuesto de él mismo A = Numero1 – Numero2 'Resta dos números A = Numero1 * Numero2 'Multiplica dos números A = Numero1 / Numero2 'Divide dos números. Una división sobre cero causará un error [A Division By Zero (#26) error] A = Numero ^ Potencia 'Eleva un numero a una potencia A = Numero1 \ Numero2 A = Number1 DIV Number2 'Calcula el cociente de dos números enteros, truncando el resultado. Una división sobre cero causará un error (#26) A = Numero1 MOD Numero2 'Calcula el remanente de un cociente de dos números. Una división sobre cero causará un error (#26)
De comparación
editarNumero1 = Numero2 'Retorna TRUE si dos números son iguales Numero1 <> Numero2 'Retorna TRUE si dos números son diferentes Numero1 < Numero2 'Retorna TRUE si Numero1 es estrictamente menor que Numero2 Numero1 > Numero2 'Retorna TRUE si Numero1 es estrictamente mayor que Numero2 Numero1 <= Numero2 'Retorna TRUE si Numero1 es menor o igual que Numero2 Numero1 >= Numero2 'Retorna TRUE si Numero1 es mayor o igual que Numero2 ' Si el resultado de una comparación es asignado a una variable entera, entonces el resultado sera -1 (True) o 0 (False)
De asignación
editarVariable = Expresión 'Asignación directa Variable += Expresión 'Asignación con suma. Es sinónimo de Variable = Variable + Expresión Variable -= Expresión 'Asignación con resta. Es sinónimo de Variable = Variable - Expresión Variable *= Expresión 'Asignación con multiplicación. Es sinónimo de Variable = Variable * Expresión Variable /= Expresión 'Asignación con división. Es sinónimo de Variable = Variable / Expresión Variable \= Expresión 'Asignación con división de enteros. Es sinónimo de Variable = Variable \ Expresión Variable &= Expresión 'Asignación con concatenación de texto. Es sinónimo de Variable = Variable & Expresión Variable &/= Expresión 'Asignación con concatenación de ruta. Es sinónimo de Variable = Variable &/ Expresión
Comentar el código
editarEs una buena práctica agregar comentarios al código que escribes, independientemente si es un programa en Gambas o en cualquier otro lenguaje. En los ejemplos anteriores hacemos uso de los comentarios para proporcionar detalles del significado de los operadores. Todos los comentarios inician con un apostrofe (') y todo lo que se escriba después de él, sera ignorado por el compilador.
'Esta línea es ignorada por el compilador de Gambas PRINT "Hola Mundo" 'Esta línea imprime Hola Mundo en la consola
Uno de los peores vicios de los programadores es no comentar su código, y después cuando tratan de darle mantenimiento a una sección de código que escribieron unos cuantos meses antes, son incapaces de recordar para que usaron ciertas variables o que función tiene una parte especifica de su código. Ahora imagina que estas trabajando en un proyecto de programación en equipo, donde cada desarrollador se encarga de escribir una parte del código, o una clase que sera usada por alguna otra parte del código. Muchos desarrolladores dicen que sólo los tontos comentan su código, pero creo que es al revés.