Definiciones
Declaración.
Es una línea de código con las instrucciones para realizar una acción, también conocido como algoritmo.
Mensaje ("Hola mundo")
Obs. generalmente cada declaración debe de ir en una línea. Sin embargo, en el caso de funciones se puede utilizar más líneas, con la condición que la función abra con “(” y en la última línea de la declaración cierre con “)”. Con excepción en las estructuras condicionales.
DlgBusqueda(Datos:Clientes,
Campos:Codigo,Nombre)
DlgBusqueda(Datos:Producto,
Campos:Codigo,Descripcion
)
También se puede utiliza al final de la linea un guión bajo, precedido de un espacio ” _”
Correcto!!
Sql = "SELECT Code, Name FROM Customers _
WHERE Type = 'A' "
Incorrecto!!
Sql = "SELECT Code, Name FROM Customers_
WHERE Type = 'A' "
Debe de haber un espacio después de la ultima palabra/caracter del guión bajo.
Variables
Las variables son espacios de memoria que se ocupan durante el funcionamiento de la Aplicación
Existen dos tipos de variables:
> Variables Locales que solo existen en el procedimiento en donde se declaran
> Variables Globales que existen hasta que cierra la aplicación
Se utiliza el comando LET o VAR para declarar las variables y se pueden inicializar con un valor
Grazie reconoce cuatro tipos de valor para las variables:
- Numérico
- Texto
- Booleano (Verdadero/Falso)
- Array / Lista
Variables de fecha se utilizan como texto y se interpretan con funciones integradas.
Ejemplos:
var n, t, b, a <- Se pueden inicializar sin valor
var n=0, t = "Texto", b = True <- Se pueden inicializar con valor
opción de usar paréntesis y/o ":" en lugar de "="
var(n:0, t="Texto", b=True)
Como asignar una variable array:
a = [1,2,3,”Texto”]
IMPORTANTE
Se pueden declarar una o mas variables en una solo linea
Var variable = "xx", numero = 10
Para asignarle un valor a la variable se utilizan los simbolos "=" ó ":"
mivariable = “Grazie”
ó
mivariable : "Grazie"
Para obtener el valor de una variable dentro de un Texto usar el signo $
mivariable = "Grazie"
Mensaje “Bienvenido $mivariable "
Existen propiedades de las variables para convertir a las mismas
mitexto = "100"
minumero = 200
miresultado = mitexto.aNumero() + minumero
mivalor = 100
miitexto = "El resultado es "
miresultado = mitexto + mivalor.aTexto
Obs. Grazie no reconoce el valor tipo “colores”, para usar este tipo en variables se debe usar como texto
Operadores Matemáticos
OPERADOR | DESCRIPCION | EJEMPLO | RESULTADO |
+ | Adición | n = 100 + 300 t = “Text 1 ” + “Data x” t = “Text ” + ” + “1” + ” + ” Data x” | 400 “Text 1 Data x” “Text ‘1’ Data x” |
– | Substracción | n = 300 -50 | 250 |
* | Multiplicación | n = 30 * 3 | 90 |
/ div | División | n = 100 / 2 n = 100 / 3 Importante: Si queremos hacer la operación y que considere decimales n = 100 / 3.0 | 50 33 33.3333333 |
mod | Restante | Da el resto de una cociente de una división: 26/6=4 (6*4=24 26-24=2) Solo regresa valores enteros n = 26 mod 6 | 2 |
++ | Incremento | Let n = 1, i = 0 n++ i = n++ + 100 + n++ Let i = 1 while i < 5 Mensaje i i++ .while | 2 105 {n=4} |
– – | Decremento | Let n = 10, i = 0 n- – i = n- – | 9 8 |
++ – – | Usando los dos operadores en la misma linea | Let i = 2, n = 0 n = i++ + 300 + i- – | 305 {i=2} |
Operadores de comparación
a <> b a es distinto que b
a > b a es mayor que b
a < b a es menor que b
a = b a es igual que b
a >= b a es mayor o igual que b
a <= b a es menor o igual que b
Operadores lógicos
IMPORTANTE. Las sentencias deben ir entre ( ) por lo tanto es obligatorio usar la estructura condicional con ( )
OR a OR b => Devuelve true si alguna de las dos es true
if( ( 4 = 4) OR ( 5 = 3) )
Mensaje True
else
Mensaje False
.if
AND a AND b => Devuelve true únicamente si las dos son true
if( (4 = 4) AND (8 = 8) )
Mensaje True
else
Mensaje False
.if
NOT Niega una sentencia.
if( NOT (2 = 2) )
Mensaje False
else
Mensaje True
.if
Var b = False
if Not b
Mensaje b {False}
else
Mensaje b {True}
.if
Estructura condicionales
Actualmente Grazie soporta solo dos estructura condicionales suficientes para darle flujo a la aplicación.
IF / ELSE-IF / ELSE / .IF
La sentencia condicional if se usa para tomar decisiones, este evalú básicamente una operación lógica, es decir una expresión que de como resultado True o False , y ejecuta la pieza de código siguiente siempre y cuando el resultado sea verdadero.
if ( condition )
// Execute this block code if condition is Tru
else-if ( condition )
// Execute this block code if condition is True and prior condition is false
else
// Execute this block code if teh conditions are false
.if
Si ( condición )
// Ejecuta estas lineas si la condición es Verdadera
Osi (
// Ejecuta estas lineas si la condición es Verdadera y la condición anterior es falsa
SiNo ( condicion )
// Ejecuta estas lineas si las condiciones son falsas
.Si
Observaciones:
Si la condición es simple los paréntesis son opcionales:
if 500 > 900
// Block of code
.if
En caso de condiciones mas complejas son obligatorios los paréntesis:
if ( (country="Canada") OR (country="USA") )
// Block of code
.if
=> MATCH / AS / .AS / .MATCH
match ( variable to be evaluated )
as value1
// Execute this Block of code if the variable is equal to value1
as value2
// Execute this Block of code if the variable is equal to value2
as value3, value4 // Checking for a collection of values
// Execute this Block of code if the variable is equal to value3 or value4
.as // Optional
// Execute this Block of code if prior cases are not match
.match
// Example
country = "Usa"
match country
as "Canada", "Mexico" // collection of values
// Execute this Block of code if country is Canada or Mexico
as "Argentina"
// Execute this Block of code if country is Argentina
.as // Optional
// Execute this Block of code if prior cases are not match
.match
Note:
"as" can be used to assign a range.
Salary = 45000
match Salary
as 1000..10000
// Execute this Block of code if salary is between 1000 and 10000
as 10001..50000
// Execute this Block of code if salary is between 10001 and 50000
.as // Optional
// Execute this Block of code if prior cases are not match
.match
ELEGIR / CASO / .CASO / .ELEGIR
elegir ( variable a ser evaluada )
caso valor1
// Ejecuta este bloque si la variable es igual a valor1
caso valor2
// Ejecuta este bloque si la variable es igual a valor2
caso valor3, valor4 // Checar colección de
// Ejecuta este bloque si la variable es igual a valor3 o valor4
.caso // Opcional
// Ejecuta este bloque si las variables anteriores no coinciden
.elegir
// Ejemplo
pais = "Usa"
elegir pais
caso "Canada", "Mexico" // colección de valores
// Ejecuta este bloque si pais es igual a Canada o Mexico
caso "Argentina"
// Ejecuta este bloque si pais es igual a Argentina
.caso // Opcional
// Ejecuta este bloque si pais no es igual los anteriores
.elegir
Note:
"caso" Se puede asignar como rango
Sueldo = 45000
elegir Sueldo
caso 1000..10000
// Ejecuta este bloque si sueldo esta entre 1000 y 10000
caso 10001..50000
// Ejecuta este bloque si sueldo esta entre 10001 y 50000
.caso // Opcional
// Ejecuta este bloque si sueldo no esta entre los anteriores
.elegir
Ciclos / Loops
MIENTRAS / SALIR-MIENTRAS / .MIENTRAS ________ WHILE / BRAKE-WHILE / .WHILE
Es la estructura en que el cuerpo del bucle se repite mientras se cumple una determinada condición. Cuando se ejecuta la instrucción mientras/while, lo primero que ocurre es evaluar la condición (una expresión booleana). Si la condición se evalúa falsa, no se entra al ciclo y se sigue con el flujo normal del código Si la condición es verdadera, entonces se entra al ciclo y se ejecuta el cuerpo del bucle (instrucciones dentro del mientras), después se evalúa de nuevo la expresión booleana. Este proceso se repite una y otra vez mientras la condición sea verdadera.
While ( condition )
//Block of code
.while
//Example
let num = 1
while num < 10
// Block of code
if num = 6
break-while
.if
num++ <= Increase num
.while
// Español
Mientras ( condition )
//Block of code
.mientras
//Example
let num = 1
mientras num < 10
// Block of code
si num = 6
salir-mientras
.si
num++ <= Incrementa num
.mientras
DESDE / SALIR-DESDE / .DESDE ______________ FOR / BREAK-FOR / .FOR
El ciclo FOR es uno de los más utilizados en programación debido a que permite repetir varias instrucciones (pasos) un cierto número de ocasiones (por ejemplo, 10 veces).
Consta de tres partes incluidas para definir cómo deseamos que se realicen las repeticiones.
La primera parte es la inicialización, que se ejecuta solamente al comenzar la primera iteración del ciclo. En esta parte se suele colocar la variable que utilizaremos para llevar la cuenta de las veces que se ejecuta el ciclo. NO es necesario declarar la variable ya que lo hace automáticamente.
La segunda parte es la condición, que se evaluará cada vez que comience una iteración del ciclo. Contiene una expresión para decidir cuándo se ha de detener el bucle, o mejor dicho, la condición que se debe cumplir para que continúe la ejecución del bucle.
La tercer parte es la actualización, que sirve para indicar los cambios que queramos ejecutar en las variables cada vez que termina la iteración del ciclo, antes de comprobar si se debe seguir ejecutando.
for i:1, i < 10, 1
// Block of code
if i = 5
break-for
.if
.for
desde i:1, i < 10, 1
// Block of code
si i = 5
salir-desde
.si
.desde