Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porJuan Luis Santos Valenzuela Modificado hace 7 años
1
GAMBAS VISUAL BASIC PARA LINX VISUAL BASIC PARA LINUX
2
CONTENIDOS INTRODUCCION TIPOS DE DATOS DECLARACION de VARIABLES
ASIGNACIÓN OPERADORES MATEMATICOS Y LOGICOS. EXPRESIONES SENTENCIAS DE CONTROL DE FLUJO CONTTROLES MODULOS TRABAJO CON ARCHIVOS GESTION DE ERRORES P.O.O.
3
1.INTRODUCCIÓN GAMBAS fue desarrollado por el programador francés Benoît Minisini. Pretendía que Gambas tuviera las mejores características de Visual Basic, sin los numerosos errores y defectos que ve en el programa y el lenguaje, bajo la potencia de Linux. Visual Basic + Linux = GAMBAS
4
Qué es GAMBAS? Gambas no es solo un lenguaje de programación, es también un entorno (IDE) 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. GAMBAS ES SOFTWARE LIBRE. 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 (usio, copia, modificación y redistribución).
5
gambas.sourceforge.net/
6
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, en 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. Son librerías especificas que le dotan de mas 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.
7
2. TIPOS DE DATOS String: Se usa para almacenar una cadena de texto.
Boolean: Representa un valor Lógico. Sólo acepta valores True o False. Byte: Representa un numero entero positivo entre 0 y 255. Short: Representa un numero entero con valores posibles entre y Integer: numero entero con valores posibles entre y Long: Representa un numero entero con valores posibles entre: y Single: Representa un numero real, con decimales, con valores posibles entre E+38 y +1, E+38. Float: Representa un numero real, con decimales, con valores posibles entre 8, E+ 307 y + 8, E+307. Date: Almacena valores de fecha y hora. Internamente la fecha y la hora se almacenan en formato UTC. String: Se usa para almacenar una cadena de texto.
8
DIM nombre_variable AS tipo_variable
3. DECLARAR VARIABLES DIM nombre_variable AS tipo_variable Hay dos lugares donde se pueden declarar las variables, dependiendo del ámbito en el que se vayan a usar: Variable local: Si se declaran dentro de una subrutina o función, están disponibles para ser usadas sólo dentro de esa subrutina o función. Variable global: Si se declara al principio del archivo de código (un modulo o clase) están disponibles para todo el código de ese archivo, en todas sus subrutinas.
9
Conversión de tipos: Funciones que permiten convertir un tipo a otro:
Cbool(expresión): Convierte la expresión a un valor booleano. Cshort(expresión), Cint(expresión) o Cinteger(expresión), y Clong(expresión): convierte respectivamente, la expresión en un numero 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 ingles mes/dia/año hora:minutos:segundos. Ejemplo: Cdate(“09/06/1972) 01:45:12”), donde 06 sera el dia 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/ :45:12”)) devuelve: “06/09/ :45:12” Val(expresión): Convierte una cadena de texto en un tipo Boolean,
10
Operadores matemáticos
* / ^ es el operador de potencia. Ejemplo: 4^3=64 DIV: la parte entera del resultado de la división MOD: resto de la división entera Ejemplo: 9 DIV 2 = 4,9 9 MOD 4 = 1
11
Funciones Matemáticas
Abs(numero): calcula el valor absoluto de un número. Dec(numero): decrementa un número. Frac(numero): devuelve la parte decimal de un número. Inc(numero): Incrementa un numero. Int(numero): devuelve la parte entera de un numero. Max(numero1, numero2, ...): devuelve el numero mayor. Min(numero1, numero2, ...): devuelve el numero menor. Round(numero,decimales): redondea un numero con los decimales deseados. Rnd([mínimo],[máximo]): devuelve un numero aleatorio comprendido entre mínimo y máximo.
12
Manejo de cadenas Len(Cadena): devuelve la longitud de una cadena
&: concatenar cadenas Ejemplo: Dim nombre AS String Dim Apellidos AS String Nombre=”Manuel” Apellidos=”Alvarez Gomez” PRINT Apellidos & “, “ & Nombre La salida en consola será: Alvarez Gomez, Manuel
13
Lectura / Escritura DIM Num AS Short PRINT “ Introduzca un numero”
INPUT Num
14
4. SENTENCIAS DE CONTROL DE FLUJO
GAMBAS
15
Sentencia Selectiva IF expresión THEN .... ELSE …. ENDIF
Sirve para tomar una decisión Sintaxis Básica: Ejemplo: IF A>B THEN PRINT “ El mayor es A:”&A ELSE PRINT “ El mayor es B:” &B ENDIF IF expresión THEN .... ELSE …. ENDIF
16
SELECT CASE SELECT CASE CASE ….. CASE ELSE END SELECT
Leer Edad SELECT CASE edad CASE 0 TO 2 PRINT “Bebe” CASE 2 TO 12 PRINT “Niño” CASE 18 PRINT “Mayor de edad” CASE 13 TO 17 PRINT “Adolescente” CASE ELSE PRINT “Adulto” END SELECT
17
BUCLE MIENTRAS WHILE Condición ... instrucciones WEND Salir = False
WHILE NO(Salir) //Escribir Menu WEND
18
Bucle REPITE..MIENTRAS REPEAT ... instrucciones UNTIL Condición
Salir = False REPEAT //Escribir Menu UNTIL Salir
19
Bucle FOR (Para) FOR Var = Expr TO Expr [ STEP 2 ] ... NEXT
Ejemplo: imprimir pares del 2 al 100 DIM Num AS Short FOR Num = 2 TO 100 STEP 2 PRINT Num NEXT
20
Funciones de Fecha y Hora
FUNCIÓN DE FECHA-HORA DESCRIPCIÓN Date Devuelve la fecha sin el componente de hora. DateAdd Añade un periodo de tiempo a la fecha dada. DateDiff Devuelve el periodo de tiempo entre dos fechas. Day Devuelve el día de un valor Date. Hour Devuelve el número de horas de un valor Date. Minute Devuelve el número de minutos de un valor Date. Month Devuelve el número de mes de un valor Date. Now Devuelve la fecha y hora actuales. Second Devuelve los segundos de un valor Date. Time Devuelve la parte de hora de un valor Date. Timer Devuelve el número de segundos transcurridos desde que se inició el programa. Wek Devuelve el número de semana de un valor Date.
21
FECHAS (tipo DATE) DIM Fecha AS DATE DIM A,M,D As Integer Dim Mes as String Fecha = NOW() PRINT Fecha M = Month() D = Day() A = Year() SELECT CASE M CASE 1: Mes=“Enero” CASE 2: Mes=“Febrero” …. END SELECT PRINT “Hoy es “& D ” de “& Mes &“ de”& A
22
ARRAYS Dim vector As Integer[10]
Gambas dispone de un tipo predefinido de matriz para cada tipo de datos nativo. El nombre de estas clases es el nombre del tipo de datos que almacenan seguido de un corchete abierto y otro cerrado. Byte[ ] : Matriz de valores Byte. Float[ ] :Matriz de valores Float. Short[ ] :Matriz de valores Short. Date[ ]:Matriz de valores Date. String[ ] :Matriz de valores String. Integer[ ] : Matriz de valores Integer. Long[ ] :Matriz de valores Long. Single[ ] :Matriz de valores Single.
23
Recorrer un array: BUCLE FOR
Coloca en cada casilla el valor de su subindice: y muetra el contenido del arreglo Dim i As Integer Dim array As New Integer[21] For i = 0 To 20 array[i] = i* 2 Next For k = 0 To 20 Print "Indice: ", i, "valor: ", array[i] End
24
CALCULADORA (MENU) PUBLIC SUB Calculadora DIM A, B, Res AS Float DIM Opc AS Short As Int PRINT “Introduzca un numero real"; INPUT A; INPUT B; PRINT "Menu"; PRINT "1.Sumar"; PRINT "2.Restar"; PRINT "3.Multiplicar"; PRINT "4.Dividir"; PRINT "5.Potencia"; PRINT "introduzca opción 1-5"; INPUT opc; SELECT CASE opc CASE 1 Res = A+B; CASE 2 Res = A-B; CASE 3 Res = A*B; CASE 4 Res = A/B; CASE 5 END SELECT PRINT “El resultado es” & Res WHILE 1 WEND END
25
FUNCIONES Y SUBRUTINAS
26
FUNCIONES FUNCTION Nombre ( Param AS Datatype,...) AS Datatype
Toman datos de entrada y devuelven un valor, con la sentencia RETURN val. Sintaxis: Ejemplo: Function Cubo(Num As Integer) As Integer Return Num*Num*Num End FUNCTION Nombre ( Param AS Datatype,...) AS Datatype
27
SUBRUTINAS No devuelven ningún valor. Respuesta a eventos
{ PUBLIC | PRIVATE } SUB NombreSUB (Parametro AS Datatype, Parameter AS Datatype ) ... END
28
AMBITO VARIABLES STATIC: para clases. La misma variable será compartida por cada objeto de dicha clase. 1) Si necesitamos que una variable sea accesible a varias subrutinas pero que estén en el mismo formulario, módulo o clase, se define: PRIVATE Identificador AS TipoDato [ = Expresión ] 2)Si necesitamos que una variable sea accesible desde otros formularios, módulos o clases: PUBLIC Identificador AS TipoDato [ = Expresión ]
29
ARCHIVOS: FLUJO DE DATOS
GAMBAS
30
FUNCION DESCRIPCION CLOSE Cierra un Flujo EOf Devuelve un valor indicando si se alconzó el final de un archivo. FLUSH Vuelca la salida de un Flujo que dispone de un buffer. INPUT Lee cadenas de un Flujo de texto y las convierte en valores. INPUT FROM Redirige la entrada estándar. LINE INPUT Lee líneas de un Flujo de texto. LOCK Bloquea un Flujo abierto. LOf Devuelve la longitud de un Flujo. OPEN Abre un archivo para lectura o escritura y crea un Flujo. OUTPUT TO Redirige la salida estándar. PRINT Escribe expresiones en un Flujo. READ Lee datos binarios de un Flujo. SEEK Cambia la posición del puntero de un Flujo. SEEk Obtiene la posición del puntero de un Flujo. UNLOCK Desbloquea un Flujo abierto. WRITE Escribe datos binarios en un Flujo.
31
Gestión de Archivos Dim hFile As File Dim sLin As String
ARCHIVO = FLUJO DE DATOS Abrir el archivo para LEER / ESCRIBIR Dim hFile As File Dim sLin As String ‘Abrimos el archivo para lectura hfile = Open FileName For Read While NO(EOF(hfile)) READ hfile, sLin WEND Close #hFile
32
Sub EscribeContenidoFichero(FileName As String)
Dim hFile As File Dim sLin As String ‘Abrimos el archivo para lectura hfile = Open FileName For Read ‘Vamos leyendo el archivo hasta el final While Not Eof(hFile) Line Input #hFile, sLig Print sLin Wend Close #hFile End
33
MANEJO DE ERRORES CON GAMBAS
34
ERRORES EN UN PROGRAMA Cuando ejecutamos una aplicación, se pueden producir errores, por ejemplo, intentando abrir un archivo que no existe. Este tipo de error nos producen una salida abrupta dl programa. (Aborta el programa) Para evitar esto: Manejo de errores y excepciones
35
MANEJO DE ERRORES Podemos tratar ese tipo de errores, para que nuestra aplicación pueda por ejemplo, mostrar un mensaje de error e incluso poder seguir ejecutando el programa, como si nada hubiera ocurrido. CATCH Captura un error en una función DEBUG Muestra en consola un mensaje de depuracion ERROR Indica si ocurrió un error, o muestra un mensaje de error Error La clase estatica Error, nos puede indicar el número de error FINALLY Ejecuta un bloque de codigo en una funcion, incluso si hubo un error TRY Intenta ejecutar una orden, sin disparar un error. Application_Error Rutina de tratamiento de errores global
36
' MANEJO DE ERRORES Finally ' siempre se ejecuta aunque se produzca el error Public Sub Main() EscribeContenidoFichero("/home/uno/hola.txt") 'intento cerrar el archivo End Try Close #hFile ' Función que Escribe el contenido de un archivo en la pantalla numero2 = Error.Code 'guardamos el numero de error Sub EscribeContenidoFichero(FileName As String) texto2 = Error.Text 'guardamos el texto del error Dim numero1 As Integer Dim numero2 As Integer Dim texto1 As String Dim texto2 As String Catch ' se ejecuta solo si se ha producido un error Dim hFile As File ' mostramos los errores producidos... Dim sLig As String Print "No he podido mostrar el archivo: "; FileName Print "Numero del error:"; numero1; " "; texto1 Print "Numero del error:"; numero2; " "; texto2 'intentamos abrir el archivo, si sale mal, nos quedamos con el numero y texto del error... Try hfile = Open FileName For Read If Error Then numero1 = Error.Code 'guardamos el numero de error texto1 = Error.text 'guardamos el texto del error Endif While Not Eof(hFile) Line Input #hFile, sLig Print sLig Wend
37
APLICACIONES GRAFICAS
CON GAMBAS
38
CONTROLES GRÁFICOS MAS USUALES
Label: etiqueta simple que contiene una línea de texto de poca longitud. Para mostrar un texto en una posición dentro de un formulario. 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.” TextBox: caja de texto de una sola línea, en la cual el usuario puede modificar, copiar, cortar o borrar texto. TextArea: una caja de texto que es capaz de contener múltiples líneas. Button: 3 TIPOS CheckBox RadioButton PictureBox
39
BOTONES. TIPOS Button: botón normal, con un texto (propiedad Text y Picture). Evento Click ToggleButton: mantiene su estado tras la pulsación. Para dos posibles valores: SI/NO, V/F, H/M… Propiedad Value: True (presionado) /False (no presionado) ToolButton: sólo muestra un pequeño icono, sin texto. Para insertar en barras de herr.
40
CONTROLES GIF animado TextBox Botón de Comando PICTURE BOX
LABEL (etiqueta) CHECKBOX RADIO BUTTON TextBox Botón de Comando COMBO BOX LIST BOX TEXT AREA
41
TextBox El control textbox es utilizado para entrada de texto , es decir un cuadro con un ancho y un alto para que el usuario escriba un texto para ser procesado. Propiedades: - Text: contiene el texto
42
ValueBox Este control es un TextBox mejorado que permite al usuario introducir un valor formateado. El tipo de valor se especifica con la propiedad Type. Por ahora, soporta los siguientes tipos: Date identifier Number Time Los valores incorrectos son rechazados automáticamente por el control.
43
CONTROLES : CheckBox RadioButton PictureBox: para mostrar una imagen.
Responde a eventos del ratón (botón personalizado).
44
ListBox y ComboBox Lista Simple y Lista Desplegable
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. ListBox y ComboBox Lista Simple y Lista Desplegable 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 puede o no puede seleccionar ninguno, solo uno o varios.
45
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 cable.
46
ComboBox Implementa un cuadro de texto
combinado con un cuadro de lista desplegable . Ejemplo: Form.Login Propiedades: List: lista de items o elementos. Se implementa en un array. La lista se puede introducir en tiempo de codificación en las propiedades del control. Index: número de elemento Count: Devuelve el número de elementos que están listados dentro del control. Ver mas en:
47
Diálogos (msgs) 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 (“Ocurrió un error interno”)
48
Diálogos II (mensajes)
Message.Delete: 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: 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, perdida de datos de una tabla que podrían ser útiles aun.
49
MENSAJES PERSONALIZADOS
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. Dim Respuesta as Integer Respuesta=Message.Warning(“¿Desea Cerrar el Programa?”, “Si”, “No”) IF Respuesta=1 THEN Message.Info(“Gracias por usar el Programa”) Me.close ELSE Message.Info(“Ok, sigamos…”) ENDIF
50
Documentación https://www.gambas-es.org
51
Programas en consola: Hola Mundo Notas SELECT CASE Paridad
Mayor de tres números Convertir €uros a Dolares Convertir grados centigrados a Fahrenheit Area del circulo Calcular precio con IVA Calculadora con Menu Cadenas Fecha y hora Divisibilidad por 2, 3, 5, 7, 11.
52
PROGRAMAS GRAFICOS CALCULADORA LOGIN-PASSWORD TABLAS MULTIPLICAR
ABRIR Y MOSTRAR CONTENIDO ARCHIVO EUROCONVERSOR FAHRENHEIT CALCULAR VOLUMENES LETRA DEL NIF IMC
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.