Você está na página 1de 27

ESTALMAT

Andalucía Oriental
Desarrollo del software
ALGORITMOS OBJETOS

PROGRAMA
FUNCIONANDO
CÓDIGO
EVENTOS
EN
GAMBAS

Introducción a la Programación Matemática.


L. Cabello & P. Villegas
1
Lenguajes de programación
Algoritmos y programas
Algoritmo:

Describe los pasos a seguir y el


orden de ejecución

Programa:

Realiza una determinada actividad


de forma organizada.

Código:

Son las miles de líneas que hay que


escribir en un lenguaje de
programación para que funcione el
programa.
2
Lenguajes de programación
✔Crearprogramas para resolver problemas
✔Necesitamos un software = lenguaje de programación

Lenguajes de programación
Lenguaje que usan los programadores para comunicar instrucciones a un
ordenador y poder ejecutar un programa. Se pueden dividir en dos
categorías fundamentales:

Lenguajes de bajo nivel


Diseñados para ejecutarse en un ordenador determinado.

Lenguajes de alto nivel


Se puede utilizar en cualquier ordenador. No ofrecen necesariamente
mayores capacidades de programación, pero sí mejora la interacción
programador-máquina. Cuanto más alto es el nivel del lenguaje, más sencillo
es comprenderlo y utilizarlo.

3
Lenguajes de alto nivel
 Hay para todos los gustos
– Estructurados (Gambas, C, Pascal, Basic, etc.)
– Funcionales (CAML, Haskell)
– Declarativos (Prolog)
– Orientados a Objetos (Gambas, C++, C#, VB.NET, Smalltalk, Java)
– Orientados a Aspectos
– Manejado por eventos (Gambas, Visual Basic, C,..)
– Híbridos (Lisp, Visual Basic)
– Incomprensibles....

 Cada enfoque tiene sus ventajas y desventajas


 Cada uno es más apropiado para ciertas cosas

4
Gambas
El nombre de Gambas
responde al acrónimo
Almost
recursivo Gambas Almost
Means Basic Gambas Casi
(
Means
Significa Basic
BASIC
). En realidad
no podemos considerarlo un
clon de BASIC, puesto que
Gambas también está muy ...de
inspirado por el lenguaje de verdad?
programación Java.

5
Entorno de programación
Gambas
¿QUÉ ES GAMBAS?
Gambas no es solo un lenguaje de programación, es también un entorno de
programación visual para desarrollar aplicaciones gráficas o de consola.
Hace posible el desarrollo de aplicaciones complicadas muy rápidamente.
El programador diseña las ventanas de forma gráfica, arrastra objetos
desde la caja de herramientas y escribe el código en BASIC para cada
objeto.

Implementa tres formas de programar:


Programación estructurada (o procedimental)
Programación orientada a objetos
Programación manejada por eventos

¿ES GAMBAS SOFTWARE LIBRE?


Sí. Gambas se distribuye con la licencia GPL GNU (General Public
Licence). Significa que se distribuye con el código fuente y respeta las
cuatro libertades definidas por la Free Software Fundation.
El IDE de Gambas
ELEMENTOS DE GAMBAS
Para poder desarrollar y ejecutar programas en Gambas, son
necesarios los siguientes elementos:


Un compilador, que se encargará de transformar el código fuente y
archivos que formen parte de un proyecto hecho en Gambas, es un programa
ejecutable.

Un intérprete capaz de hacer que los programas hechos en Gambas sean
ejecutados por el sistema operativo.

Un entorno de desarrollo que facilite la programación y diseño de las
interfaces gráficas de los programas.

Componentes que añaden funcionalidad al lenguaje. La palabra componente
en Gambas tiene un significado específico, ya que no alude a partes
genéricas, sino a librerías específicas que le dotan de más posibilidades.

En la actualidad existen componentes para usar xml, conexiones de red,


opengl, ODBC, distintas bases de datos, escritorios basados en qt, en gtk,
etc.
El IDE de Gambas
Aplicación de consola: Primer ejemplo
1. Aplicaciones>programación> 2. Selecciona aplicación consola y 3. Elige directorio para guardar el
Gambas2 y clic en nuevo proyecto: pulsa siguiente proyecto y pulsa siguiente

4. Escribe el nombre, título y pulsa 5.Botón secundario sobre Mmain y 6.Escribe la línea que falta. Pulsa el
OK. Pulsa OK otra vez. Se ha clic en renombrar. Cámbiaselo y Boton . Observa la consola.
creado el proyecto haz doble clic sobre él.
Aplicación gráfica: Ejemplo
1. Crea un nuevo proyecto 7. Agrega 4 controles: 1 textlabel y tres Button. Cambia
2. Tipo: Aplicación gráfica GTK+ las propiedades Name y Text:
3. Nombre: SaludosEstalmat2 TextLabel1->Name:txtlAnuncio->Text:GASEOSA LA...
4. Renombra Fmain por FSaludosEstalmat2 Button1->Name:butOcultar->Text:Ocultar Anuncio
5. Doble Clic en FsaludosEstalmat2 para Button2->Name:butSaludar->Text:Saludar
abrir el formulario. Button3->Name:butSalir->Text:Salir
6. En la ventana propiedades cambiamos el Cambia las Propiedades de color de txtlAnuncio
color del fondo, ponemos un icono y
cambiamos la propiedad Text yescribimos
Fsaludos.

8. Programemos los eventos de los botones. Haz doble


clic en el Button Ocultar anuncio y escribe donde está
el cursor:
txtlAnuncio.Visible = FALSE
9. Vuelve al formulario y haz doble clic sobre el
Button Saludar y escribe:
Message.Info("Hola Estalmat")
10. Lo mismo sobre el button Salir:
ME.Close
Controles para formularios en Gambas

GALERÍA DE CONTROLES

Label:
Label Es una etiqueta simple que contiene una línea de texto de poca longitud. Su
función es mostrar un texto en una posición dentro de un formulario.
TextLabel:
TextLabel Similar al Label, pero puede mostrar texto formateado con HTML.
Ejemplo:
TextLabel1.Text=”<b>Texto con HTML</b><br>Dentro de una<i>etiqueta</i>.”
TextBox:
TextBox Es una caja de texto, de una sola línea, en la cual el usuario puede modificar,
copiar, cortar o borrar texto.
TextArea:
TextArea Se trata de una caja de texto que es capaz de contener múltiples líneas.
PictureBox:
PictureBox Tiene la función de mostrar una imagen. Responde a eventos del ratón,
por lo que puede ser empleado como botón personalizado.
ListBox:
ListBox Es una lista simple. Se añaden o eliminan elementos que se representan
como una línea de texto cada uno. La propiedad Mode determina si el usuario no puede
seleccionar ninguno, solo uno o varios.
ListView:
ListView Similar al ListBox. Puede representar un icono junto con cada elemento de la
lista, y cada uno de ellos está identificado por una clave única de texto, que nos
permite hacer búsquedas de los elementos por su clave.
ComboBox:
ComboBox Es una lista desplegable. El usuario solo ve el elemento seleccionado en
cada momento y puede desplegar la lista para seleccionar uno u otro.
Ventanas para mostrar información

DIÁLOGOS (Mensajes)
La clase Message se encarga de mostrar una ventana modal al usuario, en la cual
podemos definir un texto, que será una información o una pregunta, y una serie de
botones para elegir una opción.
Message.Info: se utiliza para mostrar un mensaje meramente informativo. Solo permite
definir un botón que normalmente tendrá un texto como OK o Aceptar.

Ejemplo:
Messaje.info (“esto es un mensaje”)

Message.Delete: se utiliza para indicar que se va a proceder a eliminar algo (archivos,


registros de una tabla, etc), y se solicita al usuario su confirmación.

Message.Error: Se emplea para indicar un mensaje de error.

Message.Question: es una pregunta al usuario, generalmente para confirmar una acción


o una opción de configuración.

Message.Warning: advierte al usuario de que la acción que va a realizar supone un


cierto peligro, por ejemplo, pérdida de datos de una tabla que podrían ser útiles aún.
Ventanas para mostrar información

Los métodos de la clase Message devuelven un número entero que


denota el botón que el usuario pulsó. En este sentido, podemos
personalizar los mensajes, con la cantidad de botones que
queramos y el mensaje que deseemos.

Ejemplo:

Dim Respuesta as Integer


Respuesta=Message.Warning(“¿Desea cerrar el programa?”, “Si”, “No”,
“De repente”)
IF Respuesta=1 THEN
Message.Info(“Gracias por usar el Programa”)
Me.close
ELSE
Message.Info(“A ver si te decides...”)
ENDIF
Variables en Gambas
VARIABLE es una porción de memoria del ordenador que se utiliza en Gambas
para guardar un dato (información) y a la que se le asigna un identificador.
Radio=4

DECLARACIÓN DE VARIABLES
Para poder utilizar una variable hay que declararla(?).
Sintaxis de declaración de una variable que se va a utilizar en un procedimiento
(subrutina) o en una función:

DIM nombre_variable AS tipo_variable

tipo_variable: hace referencia al tipo de dato de la variable: número entero, cadena,


decimal, boleano, etc.

DIM Nombre AS String; DIM Radio AS float

ÁMBITO DE LAS VARIABLES


Las variables que se declaren en un subrutina o función solo se usarán dentro de ellas.
Cuando terminen se destruirán. Esto permite utilizar el mismo nombre de variable
dentro de distintas subrutinas y su valor nunca se confundirá o mezclará.
Variables en Gambas

Para declarar una variable al principio del Módulo o Clase se usa la sintaxis:

[STATIC] (PUBLIC | PRIVATE) nombre_variable AS tipo_variable

Si se define PRIVATE: estará disponible dentro de todo el fichero, pero no será


accesible desde otros ficheros del mismo proyecto.

Si se define PUBLIC: se podrá acceder a la variable desde un fichero del proyecto


distinto a donde se declaró.

Si se define STATIC: Se usa en los archivos de clase, no en los Módulos. Sirve


para definir un comportamiento especial en todos los objetos de una misma clase.
Datos en Gambas
Los tipos de datos, que se pueden asignar a las variables, soportados por Gambas, son
los siguientes:


Boolean:
Boolean solo acepta valores True o False.

Byte:
Byte representa un número entero positivo entre 0 y 255.

Short:
Short representa un número entero con valores posibles entre ­32.768 y +32.767

Integer:
Integer representa un número entero con valores posibles entre ­
2.147.483.648 y +2.147.483.647.

Long:
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:
Single representa un número real, con decimales, con valores posibles entre ­
1.7014118E+38 y +1,7014118E+38.

Float:
Float representa un número real, con decimales, con valores posibles
entre ­8,98846567431105E+307 y + 8,98846567431105E+307.

Date:
Date almacena valores de fecha y hora. Internamente la fecha y la
hora se almacenan en formato UTC.

String:
String se usa para almacenar una cadena de texto.

Variant:
Variant significa cualquier tipo de dato, es decir, se puede almacenar integer,
single, boolean, etc.

Object:
Object representa cualquier objeto creado en Gambas.
Conversión de datos en Gambas
Cbool(expresión): convierte la expresión a un valor booleano.
Dim Positivo As Boolean. Positivo= Cbool(5 < 0). En positivo está False

Cshort(expresión), Cint(expresión) o Cinteger(expresión), y Clong(expresión):


convierte respectivamente, la expresión en un número de tipo Short, Integer y Long.

Cdate(expresión): convierte la expresión en una fecha. Debe tener cuidado


porque solo admite formato de fecha en inglés mes/día/año hora:minutos:segundos.
Ejemplo:
Cdate(“09/06/1972) 01:45:12”), donde 06 será el día 06 y no el mes 06.

CStr (expresión): convierte la expresión en una cadena de texto sin tener en cuenta
la configuración local.

Str$(expresión): convierte la expresión en una cadena de texto, teniendo en cuenta la


configuración local. ejemplo. Str$(CDate(“09/06/1972 01:45:12”)) devuelve:
“06/09/1972 01:45:12”

Val(expresión): convierte una cadena de texto en un tipo Boolean, Date o alguno de


los tipos numéricos, dependiendo del contenido de la expresión.
Operadores Matemáticos en Gambas

Además de los operadores matemáticos (+,-,*,/) ya conocidos en casi todos los


lenguajes de programación, citamos los siguientes:
^ es el operador de potencia. Ejemplo: 4^3=64
Para la división hay dos operadores adicionales, DIV y MOD,
MOD que devuelven
respectivamente, la parte entera del resultado de la división y el resto.
Ejemplo:
Dim Numero As Integer. Numero = 9 DIV 2 , Numero = 9 MOD 4.
¿Qué hay en Numero después de la primera asignación? ¿Después de la segunda?

Existen también funciones matemáticas para realizar cálculos más complejos:



Abs(numero): calcula el valor absoluto de un número.

Dec(numero):
Dec(numero) decrementa un número.

Frac(numero):
Frac(numero) devuelve la parte decimal de un número.

Inc(numero):
Inc(numero) incrementa un número.

Int(numero):
Int(numero) devuelve la parte entera de un número.

Max(numero1, numero2, ...):
...) devuelve el número mayor.

Min(numero1, numero2, ...):
...) devuelve el número menor.

Round(numero,decimales):
Round(numero,decimales) redondea un número con los decimales deseados.

Rnd([mínimo],[máximo]):
Rnd([mínimo],[máximo]) devuelve un número aleatorio comprendido entre
mínimo y máximo.
Cadenas de texto en Gambas

Existe un manejador de cadenas de texto que permite concatenarlas


directamente, se trata del símbolo &. Ejemplo:

Dim nombre AS String


Dim Apellidos AS String
Nombre=”Manuel”
Apellidos=”Álvarez Gómez”
PRINT Apellidos & “, “ & Nombre

La salida en consola será:


Álvarez Gómez, Manuel
Control del flujo en Gambas
If ... Then ... Else: Es la sentencia mas común para tomar una
decisión:
Sintaxis Básica: IF expresión THEN
IF expresión THEN <líneas de sentencias>
<líneas de sentencias> ELSE
ENDIF <líneas de sentencias>
ENDIF

Si se ejecuta una sola instrucción: IF expresión THEN sentencia_a_ejecutar.


Ejemplo:
IF edad > 20 THEN PRINT “Adulto”

Ejemplo: Ejemplo: Ejemplo

DIM edad AS Integer IF Edad > 18 THEN IF Edad < 2 AND edad > 0 THEN
edad=18 PRINT “Adulto” PRINT “Bebe”
IF Edad > 20 THEN PRINT “Qué mayor” ELSE IF Edad < 12 THEN
PRINT “Adulto” ELSE PRINT “Niño”
PRINT “Qué mayor” PRINT “ Menor” ELSE IF edad < 18 THEN
ENDIF ENDIF PRINT “Joven”
ELSE
PRINT “Adulto”
ENDIF
Teorema de Pitágoras
1. Abre un proyecto de consola, en nombre pones Hipotenusa y el formulario lo
renombras como Mhipotenusa. Haces doble clic sobre el nombre y escribes:

2. Diseña un solución gráfica para el teorema de Pitágoras. La solución está en


los apuntes que te entregamos.
Control del flujo en Gambas

Control SELECT CASE.


Esta sentencia produce un código limpio y cómodo de leer. Su sintaxis
en el recuadro de la izquierda y un ejemplo en la derecha:

SELECT [CASE] Expresión Ejemplo:


[CASE expresión [TO expresión DIM edad AS Integer
#2] [, ...] Edad=Rnd(0, 100)
... ] SELECT CASE edad
[CASE expresión [TO expresión CASE 0 TO 2
#2] [, ...] PRINT “Bebe”
... ] CASE 2 TO 12
[ {CASE ELSE | DEFAULT} PRINT “Niño”
... } CASE 18
END SELECT PRINT “Bingo, ya puedes votar”
CASE 13 TO 17
PRINT “Joven”
CASE ELSE
PRINT “Adulto”
END SELECT
Bucles o iteraciones en Gambas
Control FOR
Generalmente usado cuando se necesita contar o realizar una acción un número
determinado de veces.

Sintaxis:

FOR variable = Expresión TO Expresión [ STEP expresión ]


<líneas de sentencias>
NEXT

Ejemplo:

DIM n AS Integer
FOR n = 10 TO 1 STEP ­1
PRINT n
NEXT
Estructuras de repetición en Gambas

Control WHILE y REPEAT

Cuando se requiere repetir la ejecución de una porción del


código en varias ocasiones dependiendo de una condición,
tenemos dos instrucciones distintas:
La sintaxis de ambas es: Ejemplos
DIM Queda as Integer
WHILE Condición Queda=36
... instrucciones WHILE (Queda Mod 2 = 0)
WEND Queda=Queda / 2
PRINT Queda
WEND
REPEAT -----
... instrucciones DIM Queda as Integer
UNTIL Condición Queda=36
REPEAT
Queda=Queda / 2
PRINT Queda
UNTIL (Queda Mod 2 = 0)
Ejercicios prácticos

2. Diseña una solución en Gambas que averigüe cuántos números


enteros positivos menores que un cierto número p entero positivo
dado de antemano, tienen como únicos factores primos al 2, 3 ó 5.
(Por ejemplo: 2, 3, 5, 6, 8, 10, 12, 15, 30, 60, ...)
Ejercicios prácticos

1. Crea una calculadora básica con cinco operaciones, con el formulario


de la imagen y que funcione de la siguiente manera:

Introduces un valor en el textBox elegimos la operación (+,*,-,/),


introduces el segundo valor y le das al button “=”.
En caso de elegir el factorial después del primer valor se elige la
operación factorial y a continuación se pulsa el buton “=”
GAMBAS
http://gambasdoc.org

http://gambasrad.org

http://en.wikibooks.org/wiki/Gambas

http://gambas.sourceforge.net

http://www.gambas-es.org/

27

Você também pode gostar