Presentación de PowerPoint - IES SEVERO OCHOA DE GRANADA

Anuncio
ESTALMAT
Andalucía Oriental
Desarrollo del software
OBJETOS
ALGORITMOS
PROGRAMA
EVENTOS
CÓDIGO
EN
GAMBAS
FUNCIONANDO
Introducción a la Programación Matemática.
1
L. Cabello & P. Villegas
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
✔Crear
programas 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
4
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
Gambas
Almost
Gambas Almost
M
eans
Means Basic Gambas Casi
Significa Basic
BASIC
El nombre de Gambas
responde al acrónimo
recursivo
(
). En realidad
no podemos considerarlo un
clon de BASIC, puesto que
Gambas también está muy
inspirado por el lenguaje de
programación Java.
5
...de
verdad?
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>
Gambas2 y clic en nuevo proyecto:
2. Selecciona aplicación consola y
pulsa siguiente
3. Elige directorio para guardar el
proyecto y pulsa siguiente
4. Escribe el nombre, título y pulsa
OK. Pulsa OK otra vez. Se ha
creado el proyecto
5.Botón secundario sobre Mmain y
clic en renombrar. Cámbiaselo y
haz doble clic sobre él.
6.Escribe la línea que falta. Pulsa el
Boton
. Observa la consola.
Aplicación gráfica: Ejemplo
1. Crea un nuevo proyecto
2. Tipo: Aplicación gráfica GTK+
3. Nombre: SaludosEstalmat2
4. Renombra Fmain por FSaludosEstalmat2
5. Doble Clic en FsaludosEstalmat2 para
abrir el formulario.
6. En la ventana propiedades cambiamos el
color del fondo, ponemos un icono y
cambiamos la propiedad Text yescribimos
Fsaludos.
7. Agrega 4 controles: 1 textlabel y tres Button. Cambia
las propiedades Name y Text:
TextLabel1->Name:txtlAnuncio->Text:GASEOSA LA...
Button1->Name:butOcultar->Text:Ocultar Anuncio
Button2->Name:butSaludar->Text:Saludar
Button3->Name:butSalir->Text:Salir
Cambia las Propiedades de color de txtlAnuncio
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
<líneas de sentencias>
ENDIF
IF expresión THEN
<líneas de sentencias>
ELSE
<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
edad=18
IF Edad > 20 THEN
PRINT “Adulto”
PRINT “Qué mayor”
ENDIF
IF Edad > 18 THEN
PRINT “Adulto”
PRINT “Qué mayor”
ELSE
PRINT “ Menor”
ENDIF
IF Edad < 2 AND edad > 0 THEN
PRINT “Bebe”
ELSE IF Edad < 12 THEN
PRINT “Niño”
ELSE IF edad < 18 THEN
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
[CASE expresión [TO expresión
#2] [, ...]
... ]
[CASE expresión [TO expresión
#2] [, ...]
... ]
[ {CASE ELSE | DEFAULT}
... }
END SELECT
Ejemplo:
DIM edad AS Integer
Edad=Rnd(0, 100)
SELECT CASE edad
CASE 0 TO 2
PRINT “Bebe”
CASE 2 TO 12
PRINT “Niño”
CASE 18
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:
WHILE Condición
... instrucciones
WEND
REPEAT
... instrucciones
UNTIL Condición
Ejemplos
DIM Queda as Integer
Queda=36
WHILE (Queda Mod 2 = 0)
Queda=Queda / 2
PRINT Queda
WEND
----DIM Queda as Integer
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
Descargar