program an do en visual basic estructuras
TRANSCRIPT
PROGRAMANDO EN VISUAL BASIC
Aplicaciones computacionalesDocente: Johanna Dueñas
EVENTOS
AMBIENTE DE DESARROLLO
Son las acciones que se producen y que nos interesan identificar para establecer algún tipo de
respuesta por parte del objeto
Es un atributo nominal de un objeto de programación. Las propiedades
definen las características del objeto
Una descripción completa de un objeto, no se limita a sus propiedades,
debe comprender una definición de lo que hace.
PROPIEDADES
MÉTODOS
Byte1 byte (0 a 255 )
Long 4 bytes
(-2147483648 a
2147483647)
Boolean2 bytes
True o False
Single 4 bytes
(-3.40E38 a
3.40E38)
Currency8 bytes
-9.22E14 a
9.22E14
Double 8 bytes
-1.80E308 a
1.80E308
Integer2 bytes
(-32768 a 32767 )
Date8 byes
1/1/100 a
31/12/9999
String 1Caracter/1 byte
(aprox. 65,500 Bytes Máx.)
VariantDepende del dato
(Determinado por el tipo)
TIPOS DE VARIABLES EN VISUAL BASIC
Declaración implícita
DECLARACIÓN DE VARIABLES
Declaración explícita
Dentro de un procedimiento, no hace falta que se defina el
nombre y el tipo de una nueva variable. Si Visual Basic encuentra un nuevo nombre de
una variable, este la define automáticamente.
Se puede obligar a
definir las variables que se utilizan. Al definirlas, tanto se debe indicar un nombre
para la nueva variable, como el tipo de dato que se va a almacenar.
Option explicit
DIM
PUBLIC PRIVATE
DECLARACIÓN DE VARIABLES
STATIC
Para declarar variables en Visual Basic, lo hacemos con la palabra reservada Dim(Public, Private o Static) seguida del nombre de la misma y luego el tipo:
Dim “nombre” as “tipo de variable”Ejemplo:
Dim ciudad as stringDim M As Integer, N As Integer
El alcance de las variables se refiere al área del programa en las cuales es visible la variable; es decir, en que áreas del proyecto tendremos disponible las variables.
Las variables declaradas dentro de funciones o procedimientos, será de alcance local. Estas variables son reinicializadas cada ves que se ejecuta el procedimiento.
Las variables de nivel de formulario, estarán disponibles para todos los procedimientos del formulario.
Variables Publicas: se utilizan en todo el proyecto Cuando declaramos una variable como publica en un modulo de programa o en el formulario inicial, podremos utilizar esta variable en todo el proyecto:
EjemploPublic NoFactura as long
Variables Privadas: se utilizan sólo en el procedimiento Estas variables estarán disponibles solo dentro de nuestro formulario o procedimiento, según el lugar donde se haya declarado:
EjemploDim NoFactura as long
Variables Estáticas: No pierden su valor Con esta forma de declarar variables conseguiremos que las variables locales no se creen y se destruyan al entrar y salir de los procedimientos donde fueron declaradas sino que se mantenga su valor durante todo el periodo de ejecución de la aplicación.
ALCANCE DE LAS VARIABLES
Resumen de Alcance de las Variables
Alcance Declaración
Local Dim, Static (Dentro de un procedimiento)
Módulo Dim o Private (sección de declaraciones del módulo) Global Public (sección de declaraciones de un módulo) A nivel del módulo, no hay diferencias entre Dim y private, pero se
aconseja utilizar private en contraste con Public
Como su palabra lo dice es Información que no varía hace más fácil la comprensión del código y permite modificar un valor en un solo lugar no ocupa espacio extra, Ejemplo:
Const Mínimo = 1, Máximo = 10
LAS CONSTANTES
Definición de la constante sin indicar el tipo de dato:
Const [Nombre Constante] = [Valor Constante]
Definición de la constante indicando el tipo de dato:
Const [Nombre Constante] As [Tipo de dato] = [Valor Constante]
Visual Basic nos proporciona varias funciones de conversión de datos, las cuales nos permiten convertir el valor de una variable al tipo de variable correcto. Esto es importante cuando trabajamos con datos Variant y queremos convertirlo a otro tipo de variable más exacta o para realizar validaciones en los datos.
CBol(expresión) conversión a un valor tipo Boolean CByte(expresión) conversión a un valor tipo Byte CCur(expresión) conversión a un valor tipo Currency CDate(expresión) conversión a un valor tipo Date CDbl(expresión) conversión a un valor tipo Double CInt(expresión) conversión a un valor tipo Integer CLng(expresión) conversión a un valor tipo Long CSng(expresión) conversión a un valor tipo Single CStr(expresión) conversión a un valor tipo String CVar(expresión) conversión a un valor tipo Variant CErr(expresión) conversión a un valor tipo Error
CONVERSIONES
La Función Inputbox()
E/S (Entradas y Salidas) Sencillas
El valor que devuelve la función es un valor tipo variant .
La función InputBox muestra un mensaje en un cuadro de diálogo, espera que el usuario escriba un texto o haga clic en un botón y devuelve un tipo String con el contenido del cuadro de texto.
InputBox(Mensaje, titulo, Posx, Posy, ArchAyuda, Context)
La Función Inputbox()Mensaje: Consiste de más de una línea, asegúrese de incluir un retorno del carro chr(13) y un avance de línea, chr(10) entre cada línea. Puede usar la constante pre definida Vbcrlf para lograr el mismo efecto.
Titulo: Es una cadena que se despliega en la barra de titulo el cuadro de dialogo. Si se omite no aparecerá nada.
Posx, Posy: Expresiones numéricas que especifican el tamaño de la caja. Si se omite aparecerá en el centro.
ArchAyuda, Context: Se usan para proporcionar ayuda sensible al contexto.
MsgBox() y MsgBox
E/S (Entradas y Salidas) Sencillas
Despliega un mensaje en un cuadro de dialogo y espera que el usuario seleccione un botón.
MsgBox() y MsgBox
MsgBox(Mensaje, tipo, titulo, ArchAyuda, Context)
Mensaje: Es una expresión de cadena que se despliega como el mensaje en un cuadro de dialogo.
Titulo: Expresión de cadena que aparece en la barra de titulo del cuadro.
MsgBox() y MsgBox
MsgBox(Mensaje, tipo, titulo, ArchAyuda, Context)
Valor Botón Constante
0 Ok(Aceptar) VbOKOnly
1 Ok(Cancelar) VbOKCancel
2 Abortar, Reiterar e Ignorar
VbAbortRetryIgnore
3 Si, No y Cancelar VbYesNoCancel
4 Si o No VbYesNo
5 Reiterar y Cancelar VbRetryCancel
16 Icono Parada Critica VbCritical
32 Signo de Interrogación VbQuestion
48 Signo de Exclamación VbExclamation
64 Icono de Información VbInformation
Tipo: Expresión numérica que es la suma de valores que especifican la cantidad y el tipo de botones por desplegar.
SENTENCIAS CONDICIONALES O
ESTRUCTURAS DE DECISIÓN
Estas estructuras permiten tomar decisiones según las condiciones que se den en una aplicación.
La estructura básica de esta instrucción es la siguiente:
Los corchetes muestran partes opcionales de la instrucción.
If...Then...End If
If (Condición) Then[Instrucciones Verdadero]Else[Instrucciones Falso]End If
If...Then...End If
If (Condición) Then[Instrucciones Verdadero]Else[Instrucciones Falso]End If
[Instrucciones Verdadero]: Aquí pondremos la instrucción o instrucciones que se deberá realizar si la respuesta a la condición es Verdadera.
Condición: Aquí escribiremos la condición a evaluar, para que el ordenador nos devuelva una respuesta y según esta respuesta podamos actuar.
If (Condición) Then[Instrucciones Verdadero]Else[Instrucciones Falso]End If
[Instrucciones Falso]: Aquí pondremos la instrucción o instrucciones que se deberá realizar si la respuesta a la condición no se cumple.
If...Then...End If
End If: Cierra la sentencia If
Else: Cuando la condición no se cumple la siguiente instrucción es “si no”.
Ejemplo If...Then...End If
If Val(Edad.Text) < 18 ThenComentario.Caption = .Es menor de edad.ElseComentario.Caption = .Es mayor de edad.End If
Vamos a realizar una pequeña aplicación para que el ordenador nos diga, después de introducir la edad de una persona si es mayor de edad o no. Consideraremos la mayoría de edad a los 18 años.
Crear un Label y llamarlo=ComentarioCrear un TextBox y llamarlo= Edad
Estructura If Then
If [Condición] Then[Instrucciones Verdadero]End If
If Val(Edad.Text) < 18 Then Comentario.Caption = .Es menor de edad.End If
Imagina que lo que queremos ahora es que el ordenador nos devuelva, mirandola edad que introducimos, si es menor de 10 años, si tiene entre 10 y 20 años, si tieneentre 20 y 30 años o si es mayor de 30. Hasta este momento solo hemos visto lainstrucción If para poder controlar un caso como el que planteamos.
1 If Val(Edad.Text) < 10 Then2 Comentario.Caption = .Menos de 10 años.3 Else4 If Val(Edad.Text) < 20 Then5 Comentario.Caption = .Entre 10 y 20 años.6 Else7 If Val(Edad.Text) < 30 Then8 Comentario.Caption = .Entre 20 y 30 años.9 Else10 Comentario.Caption = .Más de 30 años.11 End If12 End If13 End If
Estructura If Then ElseIf
Select Case
Select Case [Expresión para comparar]Case [Expresión 1][Instrucciones 1]...Case [Expresión n][Instrucciones n][Case Else][Instrucciones Else]End Select
La estructura básica de esta instrucción es la siguiente:
Select Case
Select Case [Expresión para comparar]Case [Expresión 1][Instrucciones 1]...Case [Expresión n][Instrucciones n][Case Else][Instrucciones Else]End Select
En [Expresión para comparar] pondremos el objeto sobre el cual queremos preguntar por su valor.
En [Expresión 1] escribiremos cual es la pregunta que deseamos hacer sobre el valor escrito anteriormente.
En [Instrucciones 1] pondremos las instrucciones que se realizarán en caso de que [Expresión 1] sea verdadera.
Select Case [Expresión para comparar]Case [Expresión 1][Instrucciones 1]...
Case [Expresión n][Instrucciones n][Case Else][Instrucciones Else]End Select
Select CaseSi queremos que se haga algo en caso que ninguna de las expresiones que hemos puesto anteriormente se cumpla, podemos escribir [Case Else] y seguidamente la o las instrucciones que se tienen que realizar.
No olvides, igual que en el caso del If, cerrar la expresión utilizando End Select
Ejemplo Select Case
Select Case Val(Edad.Text)Case < 10Comentario.Caption = .Menos de 10
años.Case < 20Comentario.Caption = .Entre 10 y 20
años.Case < 30Comentario.Caption = .Entre 20 y 30
años.Case ElseComentario.Caption = .Más de 30 años.End Select
Ejemplo Select Case
Select Case Val(Edad.Text)Case > 30Comentario.Caption = .Más de 30 años.Case > 20Comentario.Caption = .Entre 20 y 30 años.Case > 10Comentario.Caption = .Entre 10 y 20 años.Case ElseComentario.Caption = .Menos de 10 años.End Select
Inserta un Label y ponle como nombreprecio.En dicho Label mostremos el precio del producto seleccionado.
Ejemplo Estructuras de decisiónEl siguiente ejercicio permite señalar el precio de un producto seleccionado con iva o sin él.
Crear un ListBox y llamarlo ListaObjetos con 5 nombres de diferentes objetos que puedas comprar encualquier tienda
Crear un Frame e insertar dos OptionButton.Activa uno de los dos OptionButton que has insertado anteriormente.
Los OptionButton tendrán por nombre ConIVA y como Caption: Con IVA.SinIVA y como Caption: Sin IVA.
Crear un botón y llamarlo MostrarPrecio y como Caption tendrá MostrarPrecio.
Controles a crear por el programador
Private Sub MostrarPrecio_Click()Select Case ListaObjetos.ListIndexCase 0If SinIVA.Value = True ThenPrecio.Caption = 1000ElsePrecio.Caption = (1000 * 16 / 100) + 1000End IfCase 1If SinIVA.Value = True ThenPrecio.Caption = 2000ElsePrecio.Caption = (2000 * 16 / 100) + 2000End IfCase 2If SinIVA.Value = True ThenPrecio.Caption = 3000ElsePrecio.Caption = (3000 * 16 / 100) + 3000End If
Estructura Select Case
Estructura If Then Else
Nombre del procedimiento
Case 3If SinIVA.Value = True ThenPrecio.Caption = 4000ElsePrecio.Caption = (4000 * 16 / 100) + 4000End IfCase 4If SinIVA.Value = True ThenPrecio.Caption = 5000ElsePrecio.Caption = (5000 * 16 / 100) + 5000End IfEnd SelectEnd Sub
Cierre estructura if
Cierre estructura Select
Cierre procedimiento
Ejemplo Estructuras de decisiónPrivate Sub MostrarPrecio_Click()Select Case ListaObjetos.ListIndexCase 0Precios = 1000Case 1Precios = 2000Case 2Precios = 3000Case 3Precios = 4000Case 4Precios = 5000End SelectIf SinIVA.Value = True ThenPrecio.Caption = PreciosElsePrecio.Caption = Precios + (Precios * 16 /
100)End IfEnd Sub
Nombre del procedimiento
Estructura Select Case
Estructura If Then Else
Cierre estructura if
Cierre estructura Select
Cierre procedimiento
ESTRUCTURAS DE REPETICIÓN O ITERACIÓN
Las estructuras de iteración son estructuras que ejecutan una o más veces un conjunto de sentencias (o una sentencia) un número determinado de veces, hasta que se cumpla una condición, mientras se cumpla una condición o hasta que se den ciertas circunstancias que obliguen a no ejecutar por más tiempo dichas instrucciones.
´Recordemos que las estructuras de selección ejecutaban un bloque de instrucciones determinado una vez o nunca, dependiento del cumplimiento de una condición previamente establecida.
Ciclo For... NextEsta es una estructura de repetición o bucle, la cual depende de un contador
quenos controla el número de veces que se deberá repetir una o varias
instrucciones.En esta estructura siempre deberemos especificar la variable (contador), unvalor inicial y un valor final. Normalmente el contador incrementará de uno en
uno a no ser que nosotros indiquemos lo contrario.La estructura del bucle utilizando un contador es la siguiente:
For Contador = Inicio To Fin [Step Incremento][Instrucciones]Next Contador
For... Next
Aquí es donde nosotros escribiremos el nombre de la variable que queremos utilizar como contador.
Valor inicial de la variable.
Valor final de la variable. Cuando la variable llegue a este valor, el bucle no se volverá a realizar.
For Contador = Inicio To Fin
For... Next
For Contador = Inicio To Fin [Step Incremento]
Esta instrucción es opcional. Si no la ponemos el contador irá incrementando de uno en uno. Si especificamos un número detrás de Step hacemos que nuestro contador aumente un número determinado de pasos.
Número que marcará los pasos que debe aumentar el contador.
Este número puede ser tanto positivo como negativo.
For Contador = Inicio To Fin [Step Incremento][Instrucciones]Next Contador
For... Next
Línea que indica que se termina el bucle y hace que aumente el contador según el valor que nos indique step en caso de tenerlo.
Aquí escribiremos la o las instrucciones que queremos que se repitan.
Private sub Command1_click()For N=65 To 90Label1.Caption= Chr(N)Print Chr(N)Next NEnd Sub
Ejemplo For.......NextEste programa imprime en pantalla el valor en ascii
correspondiente a cada número entre 65 y 90 utilizando la función Chr.
Ciclo Do – Until - Loop
El ciclo “DO-UNTIL-LOOP”, es utilizado con frecuencia cuando se necesita que se ejecuten ciertas instrucciones hasta que se cumpla una condición determinada, momento en el cual se sale del ciclo.
Es preciso tener en cuenta que primero se evalúa la condición y si se llega a cumplir no se entra al ciclo.
Option ExplicitDim Dado1, Dado2 As IntegerPrivate Sub Command1_Click() Do Until Dado1 = 3 And Dado2 = 3 Dado1 = Int(6 * Rnd + 1) Dado2 = Int(6 * Rnd + 1) Print "Dado1: " & CStr(Dado1) & "Dado2: " &
CStr(Dado2) Loop Print "FIN DEL CICLO"End Sub
Ejemplo Do – Until - Loop
Ciclo Do – Loop - Until
Esta estructura de iteración es similar a la estructura “DO – UNTIL - LOOP”, con la diferencia que primero se ejecuta el bloque de instrucciones(o la instrucción) y posteriormente se evalúa la condición. En caso de cumplirse la condición se sale del ciclo.
Ejemplo Do – Loop - Until
Option ExplicitDim Dado1, Dado2 As IntegerPrivate Sub Command1_Click() Do Dado1 = Int(6 * Rnd + 1) Dado2 = Int(6 * Rnd + 1) Print "Dado1: " & CStr(Dado1) & "Dado2:
" & CStr(Dado2) Loop Until Dado1 = 3 And Dado2 = 3 Print "FIN DEL CICLO"End Sub
Uso de Exit Do
Es interesante observar que no sólo es posible basarse en una condición para salir de un ciclo de iteración como el DO – WHILE, sino que también se puedes utilizar alguna condición de selección incorporada en el grupo de sentencias del ciclo, de tal suerte que cuando se cumpla, también se salga del ciclo de iteración.
Ejemplo de Exit Do
Option ExplicitDim Dado1, Dado2 As IntegerPrivate Sub Command1_Click() Do Dado1 = Int(6 * Rnd + 1) Dado2 = Int(6 * Rnd + 1) If Dado1 = 2 And Dado2 = 4 Then Print "Dado1= " & CStr(Dado1) & "Dado2= " &
CStr(Dado2) Exit Do End If Print "Dado1: " & CStr(Dado1) & "Dado2: " & CStr(Dado2) Loop Until Dado1 = 2 And Dado2 = 4 Print "FIN DEL CICLO"End Sub
Ciclo While………Wend
Un bucle es una sucesión repetitiva de instrucciones, que se están utilizando mientras se cumpla una condición o mientras no se cumpla una condición.
Mientras Condición
Instrucciones
Fin del bucle
While Condición
Instrucciones
Wend
Ciclo While………Wend
Aquí escribiremos la o las instrucciones que queremos que se repitan.
Aquí escribiremos la condición mientras la cual queremos que se repitan las instrucciones.
Una vez se cumpla la condición finaliza el bucle.
Ejemplo While………Wend
Private Sub Command1_Click() While i < 15
Print ii= i+1
WendEnd Sub
El siguiente programa imprime en pantalla los números de 1 hasta 14:
Ciclo Do - While - Loop
En los casos anteriores, se usaba la palabra “UNTIL”, dentro de un ciclo “DO - LOOP”, pero como veremos a continuación también es posible decirle a visual Basic que repita una serie de instrucciones mientras se presente una determinada condición.
Ejemplo Do - While - LoopDim variable As IntegerPrivate Sub Form_Load()
variable = 3Do While variable < 10
Print "Variable = " & CStr(variable)variable = variable + 1
LoopEnd Sub
Ciclo Do - Loop - While
También es posible al igual que con el ejercicio de “DO – UNTIL – LOOP”, colocar la palabra “WHILE” al final del ciclo, de tal manera que el ciclo primero ejecute el bloque de instrucciones y posteriormente evalúe la condición.
Ejemplo Do - Loop - WhileDim variable As IntegerPrivate Sub Form_Load()
variable = 3Do
Print "Variable = " & CStr(variable)variable = variable + 1
Loop While variable < 10End Sub