jueves, 31 de mayo de 2012

Condiciones



Para las condiciones usaremos las sentencias condicionales.
Estas sentencias son las encargadas de tomar una decisión dentro
de nuestro programa.

Para que se cumplan estas condiciones usaremos los comparadores.

OPERADOR DE COMPARACIÓN
SIGNIFICADO
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que


INSTRUCCIONES DE COMPARACIÓN
FUNCIÓN
AND
Y
OR
O
NOT
Negación

Una sintaxis posible puede ser esta:

si variable1 condición variable2 entonces hacer

Las sentencias condicionales podemos escribirlas en solo una linea,
cuando las sentencias son simples y en un grupo cuando son mas complejas.

Ejemplo de condicionales simple:

Si Juan > 18 Entonces Mostrar “Juan es mayor de edad”

IF Juan > 18 THEN PRINT “Juan es mayor de edad”


Veamos un ejemplo erróneo

SI Juan>=18 Entonces Mostrar “Juan mayor de edad”
Mostrar “Juan no es mayor de edad”

En el caso de que Juan no tenga 18 o más. La primera condición no se cumple
y salta a la siguiente instrucción. Pero ,¿ y si Juan tiene 18? .

Se cumpliría la condición y luego continuaría con la siguiente
instrucción. Mostrando también que no es mayor de edad.
¿ Como evitamos eso ?.

Usaremos una condicional doble. (Juan tiene que estar cansado..:-D)

SI Juan>=18 Entonces
Mostrar “Juan mayor de edad”
SINO
Mostrar “Juan es menor de edad”
FIN DE SI

----código---
IF Juan>=18 Then
PRINT “Juan es mayor de edad”
ELSE
PRINT “Juan es menor de edad”
END
---código---

Ahora usaremos las instrucciones de comparación:
Las dos condiciones se cumple.

SI JUAN=12 Y MARIA=12 Entonces
Mostrar “Juan y María tienen la misma edad”
SINO
Mostrar “Juan y Maria no tienen la misma edad”
FIN DE SI

---código---
IF Juan=12 AND Maria=12 THEN
PRINT “Juan y María tienen la misma edad”
ELSE
PRINT “Juan y Maria no tienen la misma edad”
ENDIF
---código---


Una de las condiciones se cumple.

Si Juan=12 Ó Maria=12 Entonces
Mostrar “Juan o Maria tienen 12 años”
SINO
Mostrar “Juan o Maria no tienen 12 años”
FIN DE SI

---código---
IF Juan=12 OR Maria=12 THEN
PRINT “Juan o María tienen 12 años”
ELSE
PRINT “Juan o María no tienen 12 años”
ENDIF
--código---


Ejemplo de negación:

Si Juan No es >=18 Entonces Mostrar “Juan es menor de edad”

IF NOT (Juan>=18) Entonces Mostrar “Juan no es mayor de edad”



Ahora hagamos una selección con múltiples condiciones.

SI edad < 2 Y edad > 0 ENTONCES
PRINT “Bebé”
EN CAMBIO SI edad<12 Entones
PRINT “Niño”
EN CAMBIO SI edad< 18 Entones
PRINT “Joven”
SINO
PRINT “Adulto”
FIN DE SI

Como veis la “Y” es una forma de decir que tiene que cumplirse
las dos condiciones y actúa como un intervalo de valores.

---código---
IF edad > 20 AND edad < 0 THEN
PRINT “Bebé”
ELSE IF edad < 12 THEN
PRINT “Niño”
ELSE IF edad < 18 THEN
PRINT “Adulto”
ELSE
PRINT “Adulto”
ENDIF
---código---

Bien como veis. Cuando tenemos muchos IF..ELSE IF,logramos
hacer código un poco confuso y aumentamos considerablemente
el número de lineas.

Para solucionar esto y tener un código mas claro usamos
La sentencia condicional múltiple “SELECT CASE”

---código---
DIM edad AS INTEGER

SELECT CASE edad
    CASE 0 TO 2
         PRINT “Bebé”
    CASE 2 TO 12
         PRINT “Niño”
    CASE 13 TO 17
         PRINT “Joven” 'No lo toméis al pie de la letra. ;-)
    CASE 18
        PRINT “Mayor de edad”
    CASE ELSE
       PRINT “Adulto"
END SELECT
---código---

Hemos usados unos rangos de valores.
Y en caso de que la edad sea mayor a 18, sera “adulto” la respuesta

Veis un código mucho mas claro de entender y más estético.

lunes, 28 de mayo de 2012

Tipos de datos


Los datos sera lo mas importantes de nuestro programa.
Podremos hacer operaciones con ellos,leer su contenido , cambiarlos y eliminarlos.

Tenemos diferentes tipos de datos.

Numéricos,lógicos o booleanos y de cadenas de textos o grupo de caracteres.

Del tipo número es el que más variedad tiene:

  • números enteros
  • números decimales

De estos dos, encontraremos tipos que abarcan un rango de valores.
Si sabemos que nuestra variable de tipo entero va estar dentro de un
rango, usaremos el mas adecuado para no desperdiciar recursos.


Tipos de datos en Gambas

Con esto vemos claramente, que tipo de variable nos conviene según el valor
que vaya almacenar nuestra variable.

Como veis si no necesitáis mas de 255 en un tipo entero, sería mas adecuado declarar nuestra variable de tipo byte.

Hay un tipo de variable flexible. Variant, almacena cualquier tipo de datos a cambio de un uso considerable de memoria. No es aconsejable salvo que la necesitemos en nuestro programa por algún motivo en especial.

Ya tenemos una breve idea de que tipo de datos serán nuestras variables.

jueves, 24 de mayo de 2012

Manuales de Gambas

El que solemos usar es este:



Es el primero que os puse para que os lo podáis bajar y lo podéis
encontrar también en cualquier parte de la red.

Su titulo: Gambas. Programación Visual con Software Libre.
Autores: Daniel Campos y José Luis Redrejo.Con la introducción de Benoît
(Nuestro maestro supremo). :-D




Benoît Minisini.Creador de Gambas.



También podéis encontrar la copia impresa en librerías.
Una posible web donde podéis encontrarlo es:

Gaceta Tecnológica


Luego esta este manual.Mas actualizado,abarca la versión 3.
Esta en ingles.
Su autor es: John W.Rittinghouse




Podéis visitar su web y bajar el archivo pdf,ejemplos,otros y también
comprar la versión impresa.

Beginner's Guide to Gambas

Estos dos manuales no deben faltar en nuestra biblioteca.
Ambos son el legado de los autores para toda las comunidades
de Gambas.

Y como es obligado la pagina de ayuda de Gambas en:

GambasDoc

Procedimientos y Funciones.Básico


Los procedimientos y las funciones son la manera de organizar
nuestro proyecto. Según va creciendo, necesitamos una forma
de organizar este.

Con una mejor organización conseguiremos un código mas
limpio y mas fácil de entender para todos.

La diferencia principal entre un procedimiento y una función,
consiste en que el procedimiento se ejecuta y no devuelve un valor
y la función al ejecutarse si lo devuelve.

Podemos hacer que el procedimiento devuelva un valor, pero
no es lo normal. Para eso ya están las funciones.

Un procedimiento en Gambas suele ser declarado de esta forma:
De esta manera, nuestro procedimiento es reconocido en todo el proyecto.

PUBLIC SUB Nombre_del_Procedemiento()

Instruccion1
Instruccion2
..

END

Y de esta forma solo es reconocido en el modulo que se encuentra.

PRIVATE SUB Nombre_del_Procedimiento()

Instruccion1
Instruccion2
..

END


Como veis un procedimiento que comienza con PUBLIC o PRIVATE 
ocurre igual que cuando declaramos las variables. Su ámbito o 
lugar reconocido cambia según como lo definamos.

En Gambas tenemos una serie de procedimientos que son especiales 
del lenguaje.Como es en un proyecto gráfico:

PUBLIC FORM_OPEN()

END

Y en uno de Texto:

PUBLIC SUB Main()

END

Ambos son el comienzo de nuestro programa. Desde el que se inician por primera vez. Recomiendo que también veáis el tema correspondiente en el manual de Gambas.

Veamos un ejemplo juntos de un procedimiento y una función:
Podemos crear un proyecto de consola o gráfico

-----código----
PUBLIC FORM_OPEN()

'Declaramos nuestras variables del tipo entero
DIM multiplicando AS Integer
DIM multiplicador As Integer 'Lo usaremos para el contador de un bucle
DIM resultado AS Integer

multiplicando=5 'Asignamos un valor a nuestra variable

FOR multiplicador=1 TO 10 'El bucle ira de 1 a 10.

  'Pasamos los valores a la función Multiplicar y los devuelva 
  'en la variable resultado

   resultado=Multiplicar(multiplicando,multiplicador)

   'Usamos el carácter “&” para unir la expresión
   PRINT multiplicando & " * " & multiplicador & " = " & resultado
NEXT

END

'La función recibirá dos valores enteros y devolverá una valor entero
PUBLIC FUNCTION Multiplicar(a AS Integer ,b AS Integer) AS Integer

DIM valor AS Integer 'Almacenara el resultado de la operación

valor=a * b

RETURN valor 'Devolvemos el valor de la operación

END

---código----

domingo, 20 de mayo de 2012

Como nombrar nuestras variables



Al nombrar una variable, al principio no nos percatamos de como identificar rápidamente el tipo que es. Una buena manera de nombrar las variables es añadir al comienzo de estas, una letra que nos diga el tipo que es.

Para las variables locales o publicas a todo un modulo usamos el símbolo '$' antes que nada.

Según el tipo de variable deberíamos usar:

a – Array, Matriz o conjunto
b – Boolean, variable lógica.
c – Colección.
d – Fecha
f – Float. Para las que son variables que son números con decimales y tienen un grado de precisión
h – Para los objetos
i – Para los enteros,ya sean Long,Short y Byte.(Diferentes grados de precisión).
s – Para las variables de cadena, que contendrán texto.

Ejemplos:

En estos ejemplos, no se esta optimizando el tipo según la precisión
Variables locales a un procedimiento o una función:

DIM sNombre AS STRING
DIM sApellidos AS STRING
DIM iEdad AS INTEGER
DIM dFechaNacimiento AS DATE

Variables locales a un módulo.(Formulario,Modulo estándar,Modulo de clase)

PRIVATE $sNombre AS STRING
PRIVATE $sApellidos AS STRING
PRIVATE $iEdad AS INTEGER
PRIVATE $dFechaNacimiento AS DATE

También podemos usar nuestra propia manera de llamarlas.

Los comentarios:

Es bueno acostumbrarse a poner comentarios en nuestro programa. Nos valdrá para recordar que hace esa parte del código o una variable. Es ideal para que otros compañeros programadores puedan entender rápidamente que hace esa parte del código.

En Gambas comentamos con el símbolo “' ' “

'Esto es un comentario.

DIM sNombre AS STRING 'Nombre de nuestro cliente

Las variables


Para trabajar con datos en nuestro programa usamos las variables.
Las variables pueden ser de tipo números,de texto,fechas,imagen,etc.

Cuando los valores de las variables no cambian su valor, las llamamos constantes.
Cada nombre que asignamos a una variable es un identificador.

Para que nuestro programa reconozca las variables, 
debemos declararlas previamente. Podemos declarar nuestras variables en:

  • Al comienzo de un modulo.(Formulario,Modulo estándar o Modulo de Clase)
  • Dentro de una subrutina (procedimiento) o una función.

Las variables pueden ser locales,solo se reconocen en el ámbito o lugar de
un procedimiento o función. O también solo dentro de un modulo en el caso
de una variable declarada con PRIVATE.

Las variables pueden ser publicas. Una variable publica es reconocida en los
diferentes módulos de nuestro proyecto. Siempre que le digamos la procedencia
del modulo. Podría estar en un modulo de formulario, en un modulo estándar

Si nuestra variable es local a una subrutina o procedimiento o una función.
La declararemos así:

DIM nombre_variable AS tipo_variable

Si nuestra variable es común a todo un modulo. La declaramos al principio de la
siguiente manera:

PRIVATE nombre_variable AS tipo_variable

En nuestros ejemplos básicos usaremos DIM y PRIVATE.

Organización de un proyecto Gambas


 Nuestro código puede estar dividido en diferentes lugares del proyecto.

  • Módulos: Contiene Basic que se ejecuta directamente.
  • Formularios: Nuestra interfaz gráfica
  • Clases: Contiene Basic que ejecuta código de esta clase.

Ejemplo de un proyecto en Gambas2:

 
Ejemplo de un proyecto en Gambas3:



Un proyecto de texto carece de formularios. Contendrán Módulos y Clases.

Además nuestro proyecto puede contener datos. Documentos,imágenes,sonidos,etc.

Tanto módulos como clases contendrá:
    • Declaraciones de variables
    • Subrutinas y funciones.

Como comienzo de un proyecto usaremos el propio formulario principal para comenzar nuestros primeros programas o podemos usar un proyecto de texto.
Con el tiempo usaremos los módulos estándar e iremos dejando el formulario solo para el manejo de la interfaz.

La representación del árbol en Gambas3 cambia un poco. Se añaden los
módulos, clases y formularios en la rama Fuentes.


sábado, 19 de mayo de 2012

Manual de Gambas

Este es el manual que usamos por primera vez los programadores de Gambas.
Aunque es para la primera versión de Gambas,es perfectamente valido para 
otras versiones,con algunos cambios.Es la base para poder comenzar a programar.

Los autores del libro son: Daniel Campos y José Luis Redrejo.

He dividido el archivo en varias partes,ya que el lugar donde esta alojado no permite archivos superiores a 20M en subida. El tamaño es de 42M en total.

Parte 1 de 5

Parte 2 de 5

Parte 3 de 5

Parte 4 de 5

Parte 5 de 5




Instalar Gambas3 en Ubuntu.

La manera mas sencilla es usando los repositorios disponibles.
Desde la consola de Linux usaremos las siguientes instrucciones
como administrador.

$sudo add-apt-repository ppa:nemh/gambas3 
$sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 73C62A1B 
$sudo apt-get update
$sudo apt-get install gambas3


Primera publicacíón.Una prueba.

Hola.Bienvenido a este nuevo blog.Es el primero que hago.Naturalmente no es el primero sobre Gambas.Espero que disfruten y que aprendan un poco mas sobre este gran lenguaje, que les sirva para despejar pequeñas dudas.

Un Saludo.