Operadores de Visual Basic 4.0

Informática. POO (Programación Orientada a Objetos). Programación. Programas informáticos. Operadores matemáticos. Expresiones aritméticas. Estructuras de control. Módulos y procedimientos

  • Enviado por: J Eloy Martínez García
  • Idioma: castellano
  • País: España España
  • 27 páginas
publicidad
cursos destacados
Aprende MySQL sin dolor
Aprende MySQL sin dolor
MySQL es la base de datos más utilizada en Internet, sin duda alguna. Se estima más de 6 millones de...
Ver más información

Aprende Virtualización con VMware vSphere
Aprende Virtualización con VMware vSphere
Tras completar el taller de virtualización con VMware vSphere el alumno habrá adquirido los siguientes...
Ver más información

publicidad

OPERADORES Y EXPRESIONES ARITMÉTICAS

Un operador es un símbolo o palabra que ejecuta una operación matemática. Una expresión aritmética es análoga a las fórmulas matemáticas. Las expresiones combinan números, variables, operadores y palabras clave, o alguno de estos elementos, para crear un nuevo valor. Visual Basic proporciona los siguientes operadores matemáticos:

Operador Operación Ejemplo

+ Suma Activos + Pasivos

  • Resta Precio - 4.00

* Multiplicación Total * Real

/ División Impuesto / Ajuste

\ División entera

Mod Resto de la división entera

^ Exponenciación Ajuste ^ 3

& Concatenación de cadenas Nombre1 & Nombre2

Ejemplo 11

En el siguiente ejemplo se demuestra lo sencillo que es utilizar los operadores de +, -, *, y / en una fórmula.

  • Vea la tabla 9 para trazar y nombrar sus objetos

  • Tabla 9

    Objeto

    Propiedad

    Ajuste del momento de diseño

    Forma

    Caption

    Prueba Operadores básicos

    Botón de etiqueta (Label1)

    Caption

    Botón de etiqueta (Label2)

    Caption

    Variable 1

    Botón de etiqueta (Label3)

    Caption

    Variable 2

    Botón de etiqueta (Label4)

    Caption

    Resultado

    Botón de texto (Text1)

    Text

    Botón de texto (Text2)

    Text

    Botón Frame (Frame1)

    Caption

    Operador

    Botón de opción (Option 1)

    Caption

    Suma (+)

    Botón de opción (Option 2)

    Caption

    Resta (-)

    Botón de opción (Option 3)

    Caption

    Multiplicación (*)

    Botón de opción (Option 4)

    Caption

    División (/)

    Botón de orden (Command1)

    Caption

    Calcular

    Botón de orden (Command2)

    Caption

    Salir

    'Operadores de Visual Basic 4.0'
    Figura 20

  • Agregue el siguiente código al botón Calcular

  • Private Sub Command1_Click()

    Dim Primero, Segundo 'declara variables

    Primero = Val(Text1.Text) 'convierte a números

    Segundo = Val(Text2.Text)

    'si se pulsa el primero botón, suma los números

    If Option1.Value = True Then

    Label1.Caption = Primero + Segundo

    End If

    'si se pulsa el segundo botón, resta los números

    If Option2.Value = True Then

    Label1.Caption = Primero - Segundo

    End If

    'si se pulsa el tercer botón, multiplica los números

    If Option3.Value = True Then

    Label1.Caption = Primero * Segundo

    End If

    'si se pulsa el cuarto botón, divide los números

    If Option4.Value = True Then

    Label1.Caption = Primero / Segundo

    End If

    End Sub

    La primera sentencia del procedimiento declara dos variables de tipo variant, las cuales se utilizan para almacenar los valores introducidos en los cuadros de texto. Las sentencias:

    Primero = Val(Text1.Text) 'convierte a números

    Segundo = Val(Text2.Text)

    Cargan los datos desde los cuadros de texto a las variables y convierten las cadenas de texto en números utilizando la función Val. Esta conversión es necesaria para que la operación de suma funcione correctamente en el programa. El tipo de dato implícito que devuelve un cuadro de texto es texto. Esto no es problema para los operadores -, * y / ya que sólo trabajan con números, de forma que cuando el usuario selecciona uno de estos tres operadores en el programa, Visual Basic convierte automáticamente los valores devueltos a las variables Primero y Segundo en números. El operador + funciona tanto con números como con cadenas de texto. Debido a que el tipo de datos implícitos que devuelve el cuadro de texto es texto, Visual Basic intentará automáticamente tratar los valores Primero y Segundo como texto cuando utilice el operador +. Visual Basic combinará o concatenaría los dos valores en lugar de realizar su suma aritmética.

  • El siguiente bloque de sentencias

  • 'si se pulsa el primero botón, suma los números

    If Option1.Value = True Then

    Label1.Caption = Primero + Segundo

    End If

    Detecta si se ha pulsado el primer botón «Suma (+)». Si la propiedad Value del primer botón de opción se coloca a True, entonces las dos variables se sumarán y el resultado se asignará a la etiqueta. Los tres bloques restantes tienen una lógica similar, cada uno de los cuales utilizan una estructura de decisión If...Then y la propiedad Caption del objeto Label.

  • Agregue el siguiente código al botón Salir

  • Private Sub Command2_Click()

    End

    End Sub

  • Pulse el botón Iniciar de la barra de herramientas

  • Escriba 100 en el cuadro de texto Variable 1 y pulse después TAB para pasar al segundo cuadro de texto

  • Escriba 17

  • Pulse el botón Suma y después pulse el botón Calcular. El número 117 aparecerá en el cuadro Resultado.

  • Practique con los demás operadores. Cuando haya terminado, pulse el botón Salir

  • Ejemplo 12

    El siguiente programa es una pequeña modificación del Ejemplo 11, muestra el funcionamiento de los operadores avanzados: \, Mod, ^, y &.

  • Cambie la propiedad Caption del los objetos Option1, Option2, Option3 y Option4 a División entera (\), Resto (Mod), Exponenciación (^) y Concatenación (&) respectivamente.

  • Modifique el código del botón Calcular para que quede de la siguiente manera:

  • Private Sub Command1_Click()

    Dim Primera, Segunda 'declara variables

    Primera = Text1.Text

    Segunda = Text2.Text

    If Option1.Value = True Then

    Label1.Caption = Primera \ Segunda

    End If

    If Option2.Value = True Then

    Label1.Caption = Primera Mod Segunda

    End If

    If Option3.Value = True Then

    Label1.Caption = Primera ^ Segunda

    End If

    If Option4.Value = True Then

    Label1.Caption = Primera & Segunda

    End If

    End Sub

    Observe que este procedimiento Command1_Click presenta un aspecto similar al programa del ejemplo 1. Sin embargo existe una importante diferencia: este procedimiento no utiliza la función Val para convertir los datos a tipo numérico cuando los lee de los cuadros de texto. La conversión no es necesaria para los operadores avanzados, ya que, los operadores avanzados \, Mod y ^ trabajan sólo con números y & sólo trabaja con texto.

  • Oprima la tecla de función F5 para iniciar el programa.

  • Teclee en el cuadro de texto Variable 1 9 y después pulse TAB

  • Teclee 2 en el cuadro de texto Variable 2

  • Pulse el botón de opción División entera y después pulse el botón Calcular

  • En el cuadro de Resultado aparece el número 4. Aunque 9 dividido entre 2 es igual a 4.5, la operación de división entera sólo devuelve la primera parte (el número 4)

  • Pulse el botón Resto y después pulse Calcular.

  • Como 9 dividido entre 2 es igual a 4 con resto 1 El número 1 aparece en el cuadro de resultado.

  • Pulse el botón de opción Concatenación y después pulse el botón Calcular

  • En el cuadro de Resultado aparecerá la cadena «92». En este caso 92 no es un número, es una combinación de los caracteres 9 y 2. La concatenación de cadenas sólo puede realizarse sobre variables de texto, cadenas delimitadas por comillas y variables variant. Para ver como funciona este método con letras, escriba unas cuantas palabras en cada cuadro de variables y después vuelva a pulsar el botón Calcular.

  • Pulse el botón Salir.

  • Prioridad de los Operadores

    Visual Basic nos permite mezclar tantos operadores matemáticos como queramos, en una fórmula, siempre que cada variable numérica y expresión estén separadas de otras por un operador. Por ejemplo

    Total = 10 + 15 *2/4^2

    La fórmula (expresión) procesa varios valores y asigna el resultado a una variable llamada Total. Pero, ¿cómo se evalúa dicha expresión en Visual Basic?.

    Visual Basic establece un orden de prioridad para las operaciones matemáticas. Este orden indica a Visual Basic que operaciones deberá realizar primero cuando evalúe una expresión que contenga más de un operador. En la siguiente tabla se muestra el orden con los operadores listados en orden de prioridad (los operadores de igual nivel, se evalúan de izquierda a derecha, según aparezcan en la expresión).

    Operador Orden

    () Primero

    ^ Segundo

    • La negación (menos unitario), Tercero

    * / Cuarto

    \ Quinto

    Mod Sexto

    +- últimos

    Tomando como referencia la tabla anterior, la expresión

    Total = 10+15*2/4^2

    Se evaluará de la siguiente forma

    Total = 10+15*2/4^2

    Total = 10+15*2/16

    Total = 10+30/16

    Total = 10+1.875

    Total = 11,875

    Alteración del Orden de Prioridad

    Podemos utilizar uno o más pares de paréntesis en una fórmula para clarificar el orden de prioridad. Por ejemplo, la expresión

    Número = (8-5*3)^2

    Determinara el valor entre los paréntesis (-7) antes de realizar la exponenciación, aunque la exponenciación tenga un orden de prioridad mayor que la resta y multiplicación. Podemos colocar paréntesis anidados en la fórmula. Por ejemplo:

    Número = ((8-5)*3)^2

    Visual Basic calcula el resultado del paréntesis más interno y después los paréntesis externos y por último el exponente. El resultado producido por las dos fórmulas es diferente, la primera da como resultado 49 y la segunda 81.

    Operadores Relacionales (de comparación) y Expresiones condicionales

    En numerosas ocasiones se necesita comparar dos cantidades con la finalidad de tomar una decisión en función del resultado de dicha comparación. Una expresión condicional es una parte de una sentencia de programa completa que realiza preguntas Verdadero o Faso sobre una propiedad, una variable o alguna otra porción de datos en el código de programa. En cualquier expresión condicional podremos utilizar los operadores de comparación que se muestran a continuación:

    Operador

    Significado

    Expresión condicional

    Descripción

    >

    Mayor que

    lblVentas:Caption > Objetivo

    Devuelve True si el valor a su izquierda es numérica o alfabéticamente mayor que el que está a su derecha

    <

    Menor que

    Pago < 2000.00

    Devuelve True si el valor a su izquierda es numérica o alfabéticamente menor que el que está a su derecha

    =

    Igual a

    Edad = Limite

    Devuelve True si los valores comparados son iguales

    >=

    Mayor o igual que

    Nombre >= “Miguel”

    Devuelve True si el valor a su izquierda es numérica o alfabéticamente igual o mayor que el que está a su derecha

    <=

    Menor o igual que

    Num <= lblMonto.Caption

    Devuelve True si el valor a su izquierda es numérica o alfabéticamente menor o igual que el que está a su derecha

    <>

    Distinto de

    TxtRes.Text <> “Si”

    Devuelve True si el valor a su izquierda es numérica o alfabéticamente distinto al que está a su derecha.

    Todos los operadores de comparación producen resultados de verdad, es decir, la comparación siempre será verdadera o falsa. Tenga especial cuidado de que las expresiones a ambos lados del operador de comparación sean del mismo tipo compatibles. Es decir no puede comparar un número con una cadena.

    La naturaleza de la comparación

    Cuando compara cadenas, se usa la tabla ASCII, para determinar la comparación de los caracteres. Así, esta tabla indica que la A mayúscula (cuyo número ASCII es 65) es menor que B mayúscula (cuyo número es 66). Una tabla ASCII es una lista de caracteres con sus representaciones numéricas únicas.

    Nota Las expresiones que pueden evaluarse como Verdadero o Falso se conocen también como expresiones booleanas y los resultados verdadero o Falso se pueden asignar a una variable o propiedad booleana.

    Advertencia Tenga cuidado cuando compara la igualdad de números que no sean enteros. Por ejemplo, si ha asignado 8.3221 a una variable de precisión simple y otro 8.3221 a otra de igual tipo, Visual Basic podría devolver Falso al comparar su igualdad.

    Estructuras de control (decisión)

    En algunos programas, las instrucciones comienzan a ejecutarse en orden sucesivo, iniciando con la primer instrucción hasta que se ejecuta la última instrucción. Es decir el flujo de control de las secuencias de instrucciones coincide con el orden físico. A este tipo de programas se les conoce como secuenciales.

    Figura 21 Flujo de control secuencial

    Un programa incapaz de alterar su flujo en respuesta a condiciones cambiantes, ya sea internas o externas, sería ineficaz. De hecho, una programación de computadora no es otra cosa que selecciones. Se reciben entradas, sé monitorean las condiciones internas, decide que hacer con ellas. Las sentencias que permiten alterar el flujo de una secuencia de instrucciones se conocen como estructuras de control. Las estructuras de control fundamentales son las selectivas y las repetitivas

    Estructuras de control selectivas

    Las estructuras de selección de Visual Basic caen en dos categorías: ramificaciones y ciclos. Las ramificaciones hacen que el programa continúe en una dirección cuando se encuentra una condición particular, sin mirar atrás. Los ciclos, se usan para repetir un cierto bloque de instrucciones hasta que las condiciones especificadas son ciertas (True) o falsas (False). A su vez las ramificaciones se clasifican de acuerdo al número de alternativas posibles a seleccionar en:

    • Alternativa simple

    • Alternativa doble

    • Alternativa múltiple

    La selección de alternativa simple

    La estructura selectiva simple permite realizar una determinada serie de acciones si la condición a evaluar es verdadera; seguir el flujo de control secuencial en el caso de que la condición sea falsa.

    Figura 22 Estructura selectiva simple

    La selección de alternativa doble

    La estructura selectiva doble permite a la computadora seleccionar una de las dos posibles acciones a ejecutar. Dependiendo de las circunstancias, la computadora elijirá una opción u otra. Si la condición resulta verdadera, se ejecutan las acciones A, si la condición resulta falsa, se ejecutan las acciones B

    Figura 23 Estructura selectiva doble

    La instrucción (sentencia) if

    La sentencia If representa las estructuras de control selectivas de alternativas simple y doble, quizá sea una de las instrucciones más importantes en un programa. If se vale de los operadores de comparación que acabamos de ver. Las expresiones condicionales pueden controlar el orden en el que se ejecutan las sentencias, cuando se usan en un bloque especial de sentencias denominado estructura de decisión.

    Sintaxis

    If condición Then sentencia(s) [Else sentencia(s)]

    Donde:

    condición es una expresión condicional que puede tomar dos valores: verdadero o falso

    sentencia(s) sentencia o grupo de sentencias separadas por él sigo dos puntos

    Nota.- La cláusula Else, que se encuentra entre corchetes, es opcional

    Sentencia If...Then

    En su forma más simple, una estructura de decisión if...Then se escribe en una única línea.

    If condición Then sentencia(s)

    Por ejemplo

    If Marcador >= 20 Then Label1.Caption = “¡Ha ganado!”

    La expresión condicional Marcador >= 20, determina si se le asigna a la propiedad Caption del objeto Label1 el valor «¡Ha ganado!», esto será posible si la variable Marcador contiene un valor mayor o igual que 20, si no, Visual Basic ejecutará la siguiente línea del procedimiento de suceso.

    Ejemplo 13:

    Elabore un programa para leer dos números x e y, imprimir el mayor:

  • Vea la tabla 10 para trazar y nombrar sus objetos

  • Tabla 10

    Objeto

    Propiedad

    Ajuste del momento de diseño

    Forma

    Caption

    Sentencia if...Then

    Name

    frmSeleccion

    Botón de orden (Command1)

    Caption

    Entra X

    Name

    cmdObtenerX

    Botón de orden (Command2)

    Caption

    Entra Y

    Name

    cmdObtenerY

    Botón de orden (Command3)

    Caption

    Imprime el Mayor

    Name

    cmdMayor

  • Declare dos variable a nivel forma

  • Dim x As Single, y As Single

  • En la ventana de código para el botón de comando cmdObtenerX, teclee

  • x = InputBox("Dame el valor de X =", "Valor de X")

  • En la ventana de código para el botón de comando cmdObtenerY, teclee

  • y = InputBox("Dame el valor de Y = ", "Valor de Y")

  • En la ventana de código para el botón de comando cmdMayor, teclee

  • Dim Mayor As Single

    Mayor = x

    If Mayor < y Then Mayor = y

    Print Mayor, "es el Mayor"

    Sentencia If - Then - Else

    Permite seleccionar entre dos grupos de sentencias dependiendo de la condición

    Sintaxis

    If condición Then sentencia(s) Else sentencia(s)

    Si la condición es verdadera, se ejecutarán las sentencias de la cláusula Then, por el contrario, si condición se evalúa como falsa, se ejecutan las sentencias de la cláusula Else.

    Ejemplo 14:

    El código del botón de comando Imprime el Mayor del ejemplo 13 quedaría:

    Dim Mayor As Single

    If x > y Then Mayor = x Else Mayor = y

    Print Mayor, "es el Mayor"

    En el caso de que las acciones siguientes a Then o Else consten de varias sentencias es necesario separarlas por caracteres dos puntos (: ) por lo que una sóla línea puede ser demasiado larga para contener a todas las sentencias necesarias o por el contrario dificil de comprender. El medio más fácil es utilizar una sentencia If de bloques

    Ya que la cláusula Else es opcional, el formato puede ser:

    If condición Then If condición Then

    .

    .

    Sentencia(s) bloque de sentencias

    .

    .

    [Else End If

    Sentencia(s)

    ]

    End If

    Ejemplo 15

    Una alternativa de codificación al ejemplo 3 sería:

    Private Sub CMDCAMBIAR_Click()

    Static elcolor

    elcolor=elcolor+1

    If elcolor<=15 Then

    FrmPRUEBA.BackColor=QBColor(elcolor)

    Else

    Elcolor=1

    FrmPRUEBA.BackColor=QBColor(elcolor)

    End If

    End Sub

    Sentencias If anidadas

    Una sentencia If puede estar dentro de otra sentencia If y ésta a su vez dentro de otra sentencia y así sucesivamente.

    Figura 24 Estructuras selectivas anidadas

    Visual Basic permite incluir varias expresiones condicionales, mediante el uso de la palabra clave ElseIf, Else y End If.

    If condicion1 Then

    Sentencias ejecutadas si condición1 es verdadero

    ElseIf condicion2 Then

    Sentencias ejecutadas si condición2 es verdadero

    [Aquí se pueden poner más cláusulas ElseIf y más sentencias]

    Else

    Sentencias ejecutadas si ninguna de las condiciones es Verdadero

    EndIf

    En el código siguiente, se muestra un ejemplo que podría utilizarse para determinar la cantidad de impuestos en una devolución de impuestos progresiva.

    If Ingresos <= 22750 Then `15% de retención

    Deuda=Ingresos*0.15

    ElseIf Ingresos <= 55100 Then `28% retención

    Deuda=3412 + ((Ingresos - 22750) * 0.28)

    ElseIf Ingresos <= 115000 Then `31% retención

    Deuda=12470+((Ingresos - 55100) * 0.31)

    ElseIf Ingresos <= 250000 Then '36% retención

    Deuda=31039 + ((Ingresos-115000) * 0.36)

    Else '39.6% retención

    Deuda = 79639 + ((Ingresos-250000) * 0.396)

    End If

    Importante El orden de las expresiones condicionales en las cláusulas If...Then y ElseIf es crítico. Si invertimos el orden de las expresiones condicionales en el ejemplo de cálculo de impuestos, los contribuyentes del porcentaje 15, 28 y 31 deberían colocarse en el porcentaje 36, porque tienen ingresos menores a 250000 (Visual Basic se detiene en la primera expresión condicional que sea verdadera, aunque haya más expresiones que también lo sean.)

    Ejemplo 16

    El siguiente ejemplo utiliza una estructura de decisión para validar la entrada de usuarios en un programa. Si escribimos una aplicación de red podemos utilizar una lógica de programa similar.

  • Utilice el control CommandButton para crear un botón de orden en la esquina superior izquierda del formulario y asígnele «Acceso» a la propiedad Caption.

  • Pulse dos veces el botón Acceso

  • El procedimiento de suceso Command1_Click() aparecerá en la ventana de código. Escriba las siguientes sentencias de programa:

    NombreUsuario = InputBox (“Introduzca su nombre.”)

    If NombreUsuario = “Laura” Then

    MsgBox (“¡Bienvenida, Laura! ¿Preparada para trabajar con tu PC?)

    Form1.Picture = _

    LoadPicture(“c:\Archivos de programa\Microsoft Visual Basic\ metafile\ business\ Pcomputr.wmf

    ElseIf NombreUsuario = “Marcos” Then

    MsgBox (“¡Bienvenido, Marcos! ¿Dispuesto a utilizar tu portátil?)

    Form1.Picture = _

    LoadPicture(“c:\Archivos de programa\Microsoft Visual Basic\ metafile\ business\calcultr.wmf

    Else

    MsgBox (“Lo siento. No puedo permitirle el acceso. “)

    End `salir del programa

    End If

    Nota Las líneas de programa pueden contener hasta 1023 caracteres de longitud en la ventana de código de Visual Basic, pero normalmente resulta más sencillo trabajar con líneas menores o iguales a 80 caracteres. Las sentencias de programa más largas pueden dividirse en múltiples líneas utilizando un carácter de continuación de lineas (_) al final de cada línea, como podemos verlo después de las propiedades Form1.Picture.

  • Pulse el botón Iniciar de la barra de herramientas

  • Pulse el botón Acceso.

  • La función InputBox del procedimiento de suceso Command1_Click mostrará un cuadro de diálogo que le pedirá que introduzca su nombre.

  • Teclee Laura y pulse INTRO

  • La estructura de decisión comparará el nombre que ha escrito con el texto «Laura» en la primera expresión condicional, dando como resultado Verdadero y la sentencia If mostrará un mensaje de bienvenida utilizando la función MsgBox.

  • Pulse Aceptar en el cuadro de mensaje

  • El cuadro de mensaje se cerrará y en el formulario se cargará un metaarchivo de Windows con la imagen de una PC, tal como se muestra en la siguiente figura

    Figura 25

  • Pruebe ahora con Marcos y Federico

  • Nota: Las instrucciones Else, ElseIf, y End If pueden tener un número de línea o una etiqueta que les preceda. El bloc If debe terminar con una instrucción End If.

    Operadores Lógicos

    Visual Basic nos permite combinar dos o más comparaciones en las estructuras de decisión. Las condiciones extra se enlazan mediante el uso de uno o más de los siguientes operadores lógicos:

    Operador

    Expresión lógica

    Significado

    And

    If (A>B) And (C<D)

    Es una y lógica o conjunción. Si ambas expresiones condicionales son Verdadero, el resultado es Verdadero.

    Or

    If (A>B) Or (C<D)

    Si alguna de las dos expresiones es Verdadero, el resultado es Verdadero.

    Not

    Not Precio < 100

    Si la expresión condicional es Falso, el resultado es Verdadero. Si la expresión condicional es Falso, el resultado es Verdadero.

    Xor

    Si una y solo una, de las expresiones condicionales es Verdadero, el resultado es Verdadero. Si ambos son Verdadero o Falso, el resultado es Falso.

    Nota Cuando un programa evalúa una expresión compleja que mezcla diferentes tipos de operadores, primero evaluará los operadores matemáticos, después los operadores de comparación y por último, los operadores lógicos.

    Ejemplo 17

    Modificaremos el ejemplo 16 para solicitar al usuario una contraseña

  • Vea la tabla 11 para trazar y nombrar sus objetos

  • Tabla 11

    Objeto

    Propiedad

    Ajuste del momento de diseño

    Forma

    Caption

    Name

    Botón de orden (Command1)

    Caption

    Acceso

    Name

    Botón de etiqueta (Label1)

    Caption

    Introduzca su nombre

    Name

    Botón de etiqueta (Label2)

    Caption

    Introduzca su contraseña

    Name

    Botón de texto (Text1)

    Caption

    Name

    Botón de texto (Text2)

    Caption

    Name

    MaxLength

    10

    PasswordChar

    *

  • Teclee

  • Private Sub Command1_Click()

    NombreUsuario = Text1.Text

    Contraseña = Text2.Text

    If NombreUsuario = "Laura" And Contraseña = "Alumna" Then

    MsgBox ("¡Bienvenida, Laura! ¿Preparada para trabajar con tu PC?")

    Form1.Picture = _

    LoadPicture("c:\Archivos de programa\Microsoft Visual Basic\metafile\business\pcomputr.wmf")

    ElseIf NombreUsuario = "Marcos" And Contraseña = "Alumno" Then

    MsgBox ("¡Bienvenido, Marcos! ¿Dispuesto a utilizar tu calculadora?")

    Form1.Picture = _

    LoadPicture("c:\Archivos de programa\Microsoft Visual Basic\metafile\business\calcultr.wmf")

    Else

    MsgBox ("Lo siento. No puedo permitirle el acceso.")

    End 'salir del programa

    End If

    End Sub

  • Pruebe su aplicación

  • Estructuras de selección múltiple

    If es adecuado para comparar información en donde se necesita una o dos verificaciones. Sin embargo, si se necesitan varias, If se torna difícil de manejar. Visual Basic soporta una instrucción llamada Select Case que maneja mejor condiciones múltiples. He aquí el formato:

    Select Case expresión

    Case valor1

    Sentencias de programa ejecutadas si valor1 coincide con expresión

    Case valor2

    Sentencias de programa ejecutadas si valor2 coincide con expresión

    Case valor3

    Sentencias de programa ejecutadas si valor3 coincide con expresión

    .

    .

    .

    Case Else

    Sentencias de programa ejecutadas si ninguno de los casos anteriores coincide

    End Select

    Donde:

    expresión Cualquier expresión numérica o de cadena.

    valor1, valor2,... Puede ser un número, cadena o cualquier otro valor que coincida con el tipo de dato expresión.

    Los valores (valor1, valor2,...), pueden tener uno de los siguientes formatos:

    Expresión

    Expresión1 To expresión2

    Is operador de comparación expresión.

    La palabra reservada To especifica un rango de valores. Si emplea la palabra To, el valor más pequeño debe aparecer antes de To. Use la palabra reservada Is con operadores de comparación para especificar un rango de valores.

    Nota.- Puede emplear expresiones múltiples o rangos en cada cláusula Case. Por ejemplo, la siguiente línea es válida.

    Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber

    También puede especificar rangos y expresiones múltiples para cadenas de caracteres. En el siguiente ejemplo, Ocurre una coincidencia cuando las cadenas son exactamente iguales a cualquier cosa, o bien caen entre nueces y sopa en orden alfabético y el valor actual de TestItem:

    Case "cualquiercosa", "nueces" To "sopa", TestItem

    Nota.- Las sentencias Select Case pueden anidarse. Cada sentencia Select Case debe tener su correspondiente sentencia End Select.

    Ejemplo 18

    En el siguiente ejercicio aprenderemos las propiedades List1.Text y List1.ListIndex para recoger la entrada y después utilizaremos una estructura Select Case para mostrar un mensaje en un idioma entre cuatro.

  • Trace los objetos de la tabla 12, como se indica en la siguiente figura:

  • Figura 26

    Tabla 12

    Objeto

    Propiedad

    Ajuste del momento de diseño

    Botón de etiqueta (Label1)

    Caption

    Programa de bienvenida internacional

    Font

    Times New Roman, Negrita, 14

    Botón de etiqueta (Label2)

    Caption

    Seleccione un país

    Botón de etiqueta (Label3)

    Caption

    (vacío)

    Botón de etiqueta (Label4)

    Caption

    (vacío)

    BorderStyle

    1 - Fixed Single

    ForeColor

    Rojo oscuro (&H00000080&)

    Botón de orden (Command1)

    Caption

    Salir

    Botón cuadro de lista (List1)

  • Pulse dos veces en el formulario. En la ventana de código aparecerá el procedimiento de suceso Form_Load

  • Escriba el siguiente código de programa para iniciar el cuadro de lista:

  • Private Sub Form_Load()

    List1.AddItem "Inglaterra"

    List1.AddItem "Alemania"

    List1.AddItem "España"

    List1.AddItem "Italia"

    End Sub

    Estas líneas utilizan el método AddItem del cuadro de lista para añadir entradas al cuadro de lista de nuestro formulario.

  • Abra el cuadro de lista desplegable Objeto y pulse el objeto List1, con lo cual aparecerá el procedimiento de suceso List1_Click y escriba las siguientes líneas

  • Private Sub List1_Click()

    Label3.Caption = List1.Text

    Select Case List1.ListIndex

    Case 0

    Label4.Caption = "Hello, programmer"

    Case 1

    Label4.Caption = "Hallo, Programmierer"

    Case 2

    Label4.Caption = "Hola, programador"

    Case 3

    Label4.Caption = "Ciao, programmatori"

    End Select

    End Sub

    En la primera línea, la propiedad List1.Text contiene el texto exacto del elemento seleccionado en el cuadro de lista y lo muestra en la tercera etiqueta del formulario. La estructura Select Case, utiliza la propiedad List1.ListIndex que contiene el número del elemento seleccionado en el cuadro de lista; el elemento de la parte superior es cero, el segundo es uno, el siguiente es dos, etc.

  • Abra el cuadro de lista desplegable Objeto y pulse el objeto Command1, escriba End en el procedimiento de suceso y después cierre la ventana de código.

  • Ejecute la aplicación

  • Estructuras de control repetitivas

    La programación estructurada es un método para resolver problemas con computadora, que exige el uso de las estructuras secuenciales, selectivas y repetitivas.

    Ciclos

    Un algoritmo para resolver un problema requiere con frecuencia que una sentencia o grupo de sentencias se repita un número determinado de veces. Una estructura de control que permite la repetición de un conjunto determinado de sentencias se denomina bucle. Un bucle (lazo o ciclo) repite una secuencia de sentencias mientras o hasta que se cumpla que una condición determinada es verdadera o falsa.

    Sentencia For...Next

    Los bucles For se utilizan cuando se debe repetir una determinada tarea un número fijo de veces. Los bucles for - Next se denominan controlados por contador, debido a que se necesita una variable numérica que actúa como contador y se incrementa o decrementa en un valor constante a partir de un valor inicial, después de cada iteración del bucle.

    Sintaxis

    For contador = inicio To fin [ Step Incremento]

    [sentencias]

    [Exit For]

    [sentencias]

    Next [contador]

    Donde:

    contador Variable numérica empleada como contador del ciclo. La variable no puede ser un elemento de arreglo o un elemento de tipo definido por el usuario.

    inicio Valor numérico inicial de contador.

    fin Valor numérico final de contador.

    Incremento Cantidad con la cual contador cambia cada vez que se ejecuta un ciclo. Si no se especifica el incremento por defecto es uno.

    sentencias Una o más sentencias entre For y Next que se ejecutan un numero específico de veces.

    El argumento Incremento puede ser positivo o negativo. El valor del argumento Incremento determina el proceso del ciclo como sigue:

    Valor El ciclo se ejecuta si

    Positivo ó 0 contador <= fin

    Negativo contador >= fin

    Una vez iniciado el ciclo y haber ejecutado todas las sentencias del mismo, Incremento es agregado a contador. En este punto, ya sea que las sentencias del ciclo se ejecuten una vez más o bien la ejecución puede continuar con la siguiente sentencia de la sentencia Next.

    Puede tener ciclos For...Next anidados. Por ejemplo:

    For I = 1 To 10

    For J = 1 To 10

    For K = 1 To 10

    . . .

    Next K

    Next J

    Next I

    Nota.- Si omite contador en una sentencia Next, la ejecución continua como si usted la hubiera incluido. Ocurre un error si se encuentra una sentencia Next antes del for correspondiente

    Ejemplo 19

    En el siguiente ejercicio utilizaremos el método Print para mostrar la salida de un ciclo For...Next en un formulario

  • Cree un botón de orden (Command1) en la parte inferior central del formulario

  • Asigne a la propiedad Caption del botón de orden la palabra «Ciclo»

  • Abra el cuadro de lista desplegable de la parte superior de la ventana Propiedades y pulse el objeto Form1.

  • Cambie la fuente a Times New Roman

  • La propiedad Fuente controla cómo aparecerá el texto en el formulario. Podemos utilizar cualquier fuente del sistema pero las fuentes True Type son las que mejor funcionan, ya que pueden visualizarse con distintos tamaños que son iguales en pantalla que en impresora.

  • Pulse dos veces el botón Ciclo, escriba las siguientes sentencias

  • For i = 1 To 10

    Print “Línea”; i

    Next i

    Este ciclo For...Next utiliza el método Print para mostrar la palabra Línea 10 veces, seguida del contador del ciclo en el formulario. El punto y coma (;) de la sentencia Print hace que Visual Basic muestre la variable contador junto a la cadena «Línea», sin espacio adicional en medio (no obstante, podemos ver un espacio entre «Línea» y la variable contador durante la ejecución del programa). Cuando se imprimen valores numéricos, el método Print reserva un espacio para el signo menos, aunque dicho signo no sea necesario. El método Print permite también el símbolo coma (,) para separar los elementos por tabuladores.

  • Ahora ya puede ejecutar el programa

  • Pulse el botón Ciclo con lo cual se mostrara en el formulario 10 líneas. Si vuelve a pulsar el botón Ciclo, se volverán a imprimir 10 líneas en el formulario (tantas como quepan). Cada vez que se imprime una línea, el cursor se desplaza una línea abajo, hasta llegar al final del formulario.

    Modificación de una propiedad en un ciclo For...Next

    Visual basic nos permite modificar propiedades y actualizar variables clave en un bucle. En el siguiente ejercicio modificaremos el programa del ejemplo , para que cambie la propiedad FontSize. La propiedad FontSize especifica el tamaño del texto en un formulario.

    Ejemplo 20

  • Inserte la siguiente sentencia directamente debajo de la sentencia For en el procedimiento de suceso Command1_Click del ejemplo

  • FontSize = 10 + i

    La primera vez que se ejecuta el ciclo, el tamaño de la fuente será 11 puntos, la segunda vez será 12 y así hasta la última vuelta del ciclo, cuando el tamaño de la fuente sea de 20 puntos.

  • Ejecute el programa. Se mostrará una ventana similar a:

  • Figura 27

    Ejemplo 21

    El siguiente ejercicio muestra cómo podemos utilizar un ciclo For...Next para abrir iconos de Visual Basic que se encuentran en archivos de disco, con números en sus nombres.

  • En el menú Archivo, pulse la orden Nuevo proyecto

  • Pulse el botón Image de la caja de herramientas y cree un cuadro de imagen junto a la esquina superior izquierda del formulario.

  • En el menú Edición pulse la orden Copiar

  • En el portapapeles de Microsoft Windows se colocará una copia del cuadro de imagen.

  • En el menú Edición pulse la orden Pegar.Visual Basic le muestra el mensaje:

  • Ya existe un control llamado `Image1'. ¿Desea crear una matriz de controles?

    Una matriz de control es un grupo de objetos de interfas idéntico. Cada uno de los objetos del grupo comparte el mismo nombre del objeto, de forma que el grupo entero puede seleccionarse y definirse de una vez. No obstante, los objetos de una matriz de control también pueden utilizarse individualmente

  • Pulse Sí para crear una matriz de control

  • Visual Basic crea una matriz de control de cuadros de imagen y pega el segundo cuadro de imagen en la esquina superior izquierda del formulario.

  • Arrastre el segundo cuadro de imagen hacia la derecha del primer cuadro de imagen.

  • Pulse la orden Pegar del menú Edición y arrastre el tercer cuadro de imagen a la derecha del segundo

  • Vuelva a pulsar la orden Pegar y coloque el cuarto cuadro de imagen a la derecha del tercero.

  • Pulse el botón de orden de la caja de herramientas y cree un botón en la parte inferior del formulario.

  • Pulse el primer cuadro de imagen, mantenga pulsada la tecla MAYUS y después pulse los cuadros de imagen segundo, tercero y cuarto. Los cuadros de imagen de la matriz de controles aparecerán seleccionados.

  • Pulse el botón Propiedades de la barra de herramientas y asigne las siguientes propiedades.

  • Objeto

    Propiedad

    Ajuste del momento de diseño

    Botón de Imagen (Image1(0))

    BorderStyle

    1 - Fixed Single

    Stretch

    True

    Botón de orden (Command1)

    Caption

    Mostrar iconos

  • Pulse dos veces el botón Mostrar iconos para mostrar la ventana de código y teclee:

  • Private Sub Command1_Click()

    For i = 1To 4

    Image1(i-1).Picture = _

    LoadPicture("c:\Archivos de programa\Microsoft Visual Basic\icons\misc\misc0" & i & ".ico")

    Next i

    End Sub

  • Al ejecutar la aplicación mostrará la siguiente salida:

  • Figura 28

    La primer sentencia del ciclo Image1(i-1).Picture, carga la sentencia Picture de cada cuadro de imagen de la matriz de controles. Los elementos de la matriz de controles se invocan por sus valores de índice como Image1(0), Image1(1), Image1(2) e Image1(3). El número entre paréntesis es el valor índice en la matriz de controles.

    El nombre del archivo se crea utilizando la variable contador y el operador de concatenación. En nuestro ejemplo, los archivos que estamos cargando son misc01.ico, misc02.ico, misc03.ico y misc04.ico.

  • Pulse el botón Cerrar de la barra de título para abandonar el programa.

  • Ejemplo 22

    La carpeta \Archivos de programa\Microsoft Visual Basic\icons\misc, está llena de archivos con patrón de nombre de archivo miscxx.ico. Para mostrar nombres de archivos tales como misc22.ico, misc24.ico, misc26.ico y misc28.ico deberemos cambiar el valor de inicio y el valor final de la sentencia For. También debemos cambiar los índices de los cuadros de imagen para que coincidan con los nuevos valores del contador que estamos utilizando.

  • Pulse el primer cuadro de imagen del ejemplo anterior y después pulse el botón Propiedades de la barra de herramientas

  • Cambie el valor de la propiedad Index a 22

  • Abra el cuadro de lista desplegable de la ventana Propiedades y pulse el nombre del objeto Image1(1), asigne a la propiedad Index el valor 24.

  • Asigne la propiedad Index del tercer y cuarto cuadro de imagen 26 y 28 respectivamente.

  • Modifique el código del ciclo

  • Private Sub Command1_Click()

    For i = 22 To 28 Step 2

    Image1(i).Picture = _

    LoadPicture("c:\Archivos de programa\Microsoft Visual Basic\icons\misc\misc" & i & ".ico")

    Next i

    End Sub

    Observe que se incluyó la palabra clave step 2, se cambió el índice de la matriz de controles de Image(i-1) a Image(i) y se borró el cero (0) de la vía de acceso dentro de la función LoadPicture.

  • Pulse el botón cerrar de la barra de título, una vez que haya probado el programa.

  • Nota: La sentencia Exit For nos permite salir de un bucle For...Next antes de que el bucle haya terminado su ejecución. De esta forma podemos responder a un suceso específico que suceda antes de que el bucle se haya ejecutado el número de veces previsto. Por ejemplo

    For i = 1 To 10

    Nombre=InputBox(“Escriba un nombre o escriba Fin para salir”)

    If Nombre = “Fin” Then Exit For

    Print Nombre

    Next i

    Sentencia While...Wend

    Figura 29 Ciclo While - Wend

    Es la estructura repetitiva más utilizada en programación y que prácticamente poseen todos los lenguajes de programación.

    Sintaxis

    While condición

    [sentencias]

    Wend

    condición Expresión numérica o de cadena que se evalúa como verdadera (True) o falsa (False).Si condición es Null, condición se trata como falsa.

    Sentencias Una o más sentencias que se ejecutan mientras condición es verdadera

    La condición se evalúa antes y después del bucle. Si condición es verdadera, se ejecutan las sentencias del bucle hasta encontrar Wend. El control entonces regresa a la sentencia While y condición es nuevamente checada. Si condición aun es verdadera, el proceso se repite. Si no es verdadera, el control pasa a la primera sentencia ejecutable después de Wend. Por ejemplo

    Contador = 0 ' Inicializar variable.

    While Contador < 20 'Probar el valor de Contador.

    Contador = Contador + 1 ' Incrementar Contador.

    Wend ' termina el ciclo While cuando Contador > 19.

    Print Contador ' Imprime 20 en la ventana de Forma

    Las sentencias dentro del ciclo son ejecutadas mientras la condición a evaluar sea verdadera.

    Los ciclos While...Wend pueden estar anidados. Cada Wend corresponde al While más reciente

    Sentencia Do...Loop

    Repite un bloque de sentencias mientras condición es verdadera o hasta que condición llegue a ser verdadera. Los bucles Do son muy útiles, porque a menudo no podemos saber de antemano cuántas veces debemos repetir un bucle.

    Sintaxis

    Do [{While | Until} condición]

    [sentencias]

    [Exit Do]

    [sentencias]

    Loop

    O usted puede usar esta sintaxis igualmente válida:

    Do

    [sentencias]

    [Exit Do]

    [sentencias]

    Loop [{While | Until} condición]

    condición expresión numérica o de cadena que es verdadera o falsa. Si condición es Null, condición es tratada como falsa.

    sentencias Una o más sentencias que se repiten mientras o hasta que condición sea verdadera.

    Nota.- Exit Do solamente puede emplearse dentro de una estructura de control Do...Loop para proporcionar una alternativa de salirse del Do...Loop. Cualquier número de sentencias Exit Do pueden escribirse en cualquier parte de Do...Loop. Con frecuencia se emplea junto con la evaluación de una condición (por ejemplo, If...Then), Exit Do transfiere el control a la sentencia inmediatamente después de Loop.

    Cuando se usa dentro de sentencias Do...Loop anidadas, Exit Do transfiere el control al lazo que se encuentra un nivel arriba del lazo donde ocurrió

    El siguiente ejemplo muestra como usar la sentencia Do...Loop. La sentencia más interna Do...Loop lleva a cabo 10 ciclos, cambia el valor de la bandera a falsa, y sale prematuramente usando la sentencia Exit Do. El ciclo más externo sale inmediatamente checando el valor de la bandera.

    Bandera = True: Contador = 0 ' Inicializa variables.

    Do ' Ciclo externo.

    Do While Contador < 20 ' Ciclo interno.

    Contador = Contador + 1 ' Incrementa Contador.

    If Contador = 10 Then ' Si la condición es verdadera.

    Bandera= False 'Pone el valor de la bandera a Falso.

    Exit Do ' Salida del ciclo interno.

    End If

    Loop

    Loop Until Bandera = False ' Sale del ciclo externo inmediatamente.

    Ejemplo 23 En éste ejemplo creará una forma con cuatro botones, uno para teclear su edad usando la función InputBox() y tres para procesar esa información mediante el uso de Select Case, Do Until y For...Next.

    Tabla 13

    Objeto de Visual Basic

    Propiedad

    Ajuste del momento de diseño

    Forma

    Name

    frmDecisión

    Caption

    Ejercicio de Estructuras de Decisión

    Botón de comando

    Name

    cmdPedirEdad

    Caption

    Capturar Edad

    Botón de comando

    Name

    cmdSeleccionar

    Caption

    Seleccionar el caso

    Botón de comando

    Name

    cmdHacer

    Caption

    Hacer hasta que

    Botón de comando

    Name

    cmdPara

    Caption

    Para...Siguiente

    Abra la sección General declaraciones de la forma y declare una variable visible a toda la forma de tipo variant (en caso de que dejase la edad null o empty).

    Private vEdad As Variant

    Para pedir al usuario que dé el valor de vEdad, teclee el código en cmdPedirEdad

    Private Sub cmdPedirEdad_Click()

    vEdad = InputBox("¿Cuantos años tiene?", "Entrada para el Programa de Decisiones")

    If vEdad = "" Then

    MsgBox "¡No ha tecleado un valor!", vbCritical, "Error"

    End If

    End Sub

    Cuando se oprima el botón Seleccionar el caso, el programa desplegará uno de cuatro mensajes, dependiendo del valor actual de vEdad.

    Private Sub cmdSeleccionar_Click()

    Dim sMsj As String 'Variable local para el mensaje

    Select Case vEdad 'Ramifica de acuerdo al valor de vEdad

    Case Is < 13

    sMsj = "Eres sólo un niño"

    Case 13 To 19

    sMsj = "Eres un adolecente"

    Case 20 To 39

    sMsj = "Eres un adulto maduro"

    Case Else

    sMsj = "Has traspuesto la colina"

    End Select

    sMsj = "¡" & vEdad & " años!" + vbCr & sMsj 'Divide la línea con un Retorno de Carro

    MsgBox sMsj, vbInformation, "Ejemplo de Select Case" 'Despliega el mensaje

    End Sub

    Nota.- La constante vbcr se emplea para dar un retorno de carro con lo cual el mensaje se divide en dos líneas. Un Chr(13), tendría el mismo efecto.

    Mediante el uso de Do...Until, su programa desplegará una lista descendente de edades, empezando con el valor actual de vEdad y deteniéndose en cero. De hecho, el valor más bajo en la lista visible puede determinarse por el tamaño de su forma.

    Private Sub cmdHacer_Click()

    Cls 'Borra el area de trabajo de la forma

    Do Until vEdad < 0 'Se mantiene desplegando hasta....

    Print CStr(vEdad) + " Años... y descendiendo..."

    vEdad = vEdad - 1 'Decrementa vEdad...

    Loop

    End Sub

    Nota.- Observe el uso de la función CStr, la cual toma un argumento simple y devuelve un equivalente tipo cadena. Recuerde que vEdad es una variable tipo Variant, la que en este momento contiene un número. Empleamos el operador + en vez del ampersand (&) el cual habría forzado a que vEdad fuera del tipo apropiado, por lo tanto vEdad primero debe convertirse, de lo contrario se produce un error.

    Finalmente añadiremos un ciclo For...Next que desplegará una lista de números nones, empezando con 1 y terminando con (o cerca del valor vEdad.)

    Private Sub cmdPara_Click()

    Dim iContador As Integer

    Cls 'Borra la forma

    For iContador = 1 To vEdad Step 2 'Usa iContador para el número de línea

    Print "Línea " & iContador & "... y avanzando 2"

    Next

    End Sub

    Nota.- Observe que aquí se usa un ampersand (&) para la concatenación de cadenas, por lo que no es necesario convertir vEdad antes de añadir éste a la cadena impresa.

    Módulos y Procedimientos

    En Visual Basic 4.0, hay tres tipos de módulos: módulos de Formulario, módulos de Código y módulos de Clase. Los tres tipos pueden contener procedimientos que pueden compartirse a diversos niveles de alcance a través de la aplicación. Hasta ahora, todo el código que se ha escrito, se ha almacenado en módulos asociados con un formulario particular. Esto es, cuando se escribe el código para responder a un evento Clic de un botón, se crea un procedimiento de evento y ese código llega a ser parte del formulario en el cual reside el botón. A menos que elimine la palabra clave Private del encabezado del procedimiento del evento, este código no estará visible fuera del formulario.

    Un módulo de código contiene código público, declaraciones, procedimientos Sub y funciones, que pueden compartirse entre todos los módulos de un proyecto.

    Un procedimiento general le dice a su aplicación cómo realizar una tarea específica. Una vez definido el procedimiento, éste debe ser explícitamente llamado por su aplicación. Un procedimiento de evento permanece inactivo hasta que se le llama para responder a los eventos causados por el usuario (un clic del ratón) o por el sistema (un evento de cronómetro o carga). Puede colocar un procedimiento general en un módulo de forma, de código o de clase.

    Cualquier procedimiento es una secuencia de instrucciones que se ejecutan como una unidad. Por ejemplo, Function y Sub son tipos de procedimientos. Un procedimiento Sub no devuelve un valor explícito, comienza con una instrucción sub y termina con una instrucción End sub.

    Visual Basic tiene muchos procedimientos integrados (tal como MsgBox y Print). Usted puede definir sus propios procedimientos. Por ejemplo:

    • Inicie un nuevo proyecto, seleccione Module del menú Insert y teclee.

    Sub LimpiarDisco () `Encabezado

    Kill “*.dat”

    Kill “Mi_arch.txt”

    MsgBox “Disco limpio!”, vbInformation, “Procedimiento concluido”

    End Sub

    Ahora puede llamar al procedimiento LimpiarDisco desde cualquier lugar de su aplicación, e incluir simplemente su nombre como una instrucción en su código.

    • En la ventana FORM1 cree un botón de comando y teclee

    ChDrive “A”

    LimpiarDisco

    Si un procedimiento va a aceptar argumentos, éstos deben especificarse en el encabezado del procedimiento

    Sub Multiplica(iPrimero AS Integer, iSegundo AS Integer) `Encabezado

    IGlobalVar = iPrimero*iSegundo

    End Sub

    Los parámetros del encabezado especifican los nombres y los tipos de las variables de entrada. Una llamada a este procedimiento es el siguiente código:

    Dim iMultiplicando AS Integer, iMultiplicador AS Integer

    iMultiplicando = 3

    iMultiplicador = 4

    Multiplica, iMultiplicando, iMultiplicador

    Nota: A menudo las palabras argumento y parámetro se usan indistintamente, sin embargo existe una diferencia entre los dos. Los argumentos son las variables o literales que se pasan a un procedimiento o función. Los parámetros son los especificadores de nombre/tipo, delimitados por comas que aparecen entre los paréntesis del encabezado de la definición (o de un procedimiento).

    Procedimientos de Función

    Un procedimiento de Función (o solamente función) es un procedimiento que realiza una tarea específica dentro de un programa Visual Basic y devuelve un valor. Una función se define en un módulo, que empieza con una instrucción Function y termina con una instrucción End Function. Algunas funciones de Visual Basic se muestran en la siguiente tabla:

    Tabla 6 Algunas Funciones útiles

    Función

    Descripción

    Ejemplo de uso

    Valor devuelto

    Len()

    Devuelve la longitud de una cadena

    iLen=Len(“Hola”)

    ILen=4

    Mid()

    Devuelve parte de una cadena

    Mid(“Hola”,1,2)

    sStr=”Ho”

    Chr()

    Devuelve el carácter del código

    sChar=Chr(65)

    sChar=”A”

    Asc()

    Devuelve el código del carácter

    iCode=Asc(“A”)

    iCode=65

    Ucase()

    Convierte a mayúsculas

    sUp=Ucase(“hola”)

    sUp=”HOLA”

    Lcase()

    Convierte a minúsculas

    sLow=Lcase(“Hola”)

    sLow=”hola”

    InStr()

    Devuelve la posición de la subcadena

    iSub=InStr(“Hola”,”a”)

    iSub=4

    Las funciones predefinidas a menudo ayudan, pero usted puede crear sus propias funciones definidas. Por ejemplo, podría crear una función para convertir una frase, tal como “el laberinto de la soledad” en “El Laberinto De La Soledad”. Para hacerlo cree la función, digamos Titulo()

    Function Titulo(sCadena_de_Entrada As String) As String

    Dim sCadena_de_Salida As String

    Dim iEspacio As Integer

    sCadena_de_Entrada = Trim(LCase(sCadena_de_Entrada)) + " "

    iEspacio = InStr(sCadena_de_Entrada, " ")

    While iEspacio > 0

    sCadena_de_Salida = sCadena_de_Salida + UCase(Mid(sCadena_de_Entrada, 1, 1)) + Mid(sCadena_de_Entrada, 2, iEspacio - 1)

    sCadena_de_Entrada = LTrim(Mid(sCadena_de_Entrada, iEspacio + 1))

    iEspacio = InStr(sCadena_de_Entrada, " ")

    Wend

    Titulo = sCadena_de_Salida

    End Function

    Observe que en el encabezado y dentro de paréntesis están los nombres y tipos de los argumentos esperados, si los hubiera, y fuera del paréntesis esta el tipo de dato del valor de retorno, si lo hubiera. El valor de retorno de una función se pone asignándolo al nombre al nombre de la función, como se muestra en la penúltima línea.

    Para llamar la función, cree un botón de comando y teclee el siguiente código

    Dim sLibroFavorito As String

    sLibroFavorito = "el laberinto de la soledad"

    Print "Mi libro favorito es " + Titulo(sLibroFavorito)

    Aunque una función no requiere argumentos, usted debe proporcionar los paréntesis vacíos

    Ejemplo

    Crearemos un proyecto llamado PROJECT6 al cual añadiremos un módulo de código y muchos formularios

  • Seleccione New Project del menú File.

  • Cambie la propiedad Name de Form1 a frmCifrar

  • Abra un nuevo módulo de código, mediante la selección Module del menú Insert de Visual Basic. En la ventana de código del módulo, declare una variable pública sFrase, tecleando Public sFrase As String

  • Cambie la propiedad Name del nuevo módulo a EVB_CODE

  • Guarde el proyecto seleccionando Save Project As... del menú File de Visual Basic, Se le preguntará si quiere guardar el módulo y la forma. Debe hacerlo

  • Abra la ventana de código de su módulo, observe que la lista desplegable Object contiene la palabra general y que la lista Proc contiene declarations. En ésta sección es donde se puede declarar cualquier variable y constante a nivel módulo o global, es aquí también donde declararemos el procedimiento ObtenerFrase. Podemos crear el procedimiento mediante la selección de Procedure del menú Insert de Visual Basic, seleccionando luego Function o Procedure y poniendo el alcance en Public o Private. Sin embargo hay una manera más fácil. En la última línea de la sección General declarations, teclee Sub ObtenerFrase

  • Sub ObtenerFrase()

    sFrase = InputBox$("Teclee una Frase: ", "La frase será cifrada")

    End Sub

  • Ahora crearemos la función Cifrar, para ello podríamos regresar a la sección General declarations de su módulo para definir la funcion,o bien tecleando Function Cifrar en cualquier línea en blanco de su módulo.

  • Function Cifrar(sFrase_de_Entrada As String) As String 'Encabezado

    Dim iLongitud As Integer, x As Integer '

    Dim sSalida As String, sActual As String, sNueva As String

    iLongitud = Len(sFrase_de_Entrada)

    For x = 1 To iLongitud

    sActual = Mid$(sFrase_de_Entrada, x, 1)

    sNueva = Chr$(Asc(sActual) + 1)

    sSalida = sSalida & sNueva

    Next

    Cifrar = sSalida

    End Function

  • Teclee Function Decifrar y oprima Enter para copiar el siguiente código

  • Function Decifrar(sFrase_de_Entrada As String) As String

    Dim iLongitud As Integer, x As Integer '

    Dim sSalida As String, sActual As String, sNueva As String

    iLongitud = Len(sFrase_de_Entrada)

    For x = 1 To iLongitud

    sActual = Mid$(sFrase_de_Entrada, x, 1)

    sNueva = Chr$(Asc(sActual) - 1)

    sSalida = sSalida & sNueva

    Next

    Decifrar = sSalida

    End Function

  • Cree el formulario de la aplicación, desde el cual llamará a sus procedimientos y funciónes personalizados. Abra frmCifrar y complete la implementacion visual de acuerdo a la Tabla 6

  • Tabla Programa de procedimiento/funcion

    Objeto Visual Basic

    Propiedad

    Ajuste de momento de diseño

    Formulario

    Name

    frmEncrypt

    Caption

    Ejervicio de Procedimiento/Función

    Botón de comando

    Name

    CmdGet

    Caption

    Obtener Frase

    Botón de comando

    Name

    CmdEncrypt

    Caption

    Cifrar

    Botón de comando

    Name

    CmdDecrypt

    Caption

    Decifrar

  • Abra la ventana de código del botón Obtener Frase y teclee

  • Private Sub cmdObtener_Click()

    ObtenerFrase

    End Sub

  • Abra la ventana de código del botón Cifrar y teclee

  • Private Sub cmdCifrar_Click()

    Dim sCifrada As String

    sCifrada = Cifrar(sFrase)

    MsgBox sCifrada, vbExclamation, "frase Encryptada"

    End Sub

  • Abra la ventana de código del botón Decifrar y teclee

  • Private Sub cmdDecifrar_Click()

    Dim sDecifrada As String

    sDecifrada = Decifrar(Cifrar(sFrase))

    MsgBox sDecifrada, vbExclamation, "Frase Decifrada"

    End Sub

    Botones de comando cuadros de texto y etiquetas

    ¿Qué son las etiquetas?

    Una etiqueta es un control gráfico que se usa para desplegar texto que un usuario no puede editar directamente Por ejemplo, si su aplicación le toma unos cuantos minutos, se puede usar una etiqueta para desplegar un mensaje Procesando...Además las etiquetas se usan para identificar cualquier otro control, como un cuadro de texto, que no tiene propiedad Caption propia

    ¡Qué son los cuadros de Texto?

    Un control TextBox se usa para desplegar información tecleada por usted en el tiempo de diseño, por el usuario en tiempo de ejecución o asignada por programa al control en el código.

    ¿Qué son los botones de comando?

    Se emplean para iniciar, interrumpir o terminar un proceso en particular. Cuando se hace clic, un botón de comando aparece oprimido y por lo tanto, se le llama algunas veces botón oprimible.

    30

    'Operadores de Visual Basic 4.0'

    INICIO

    Instrucción 1

    Instrucción 2

    Instrucción 3

    Instrucción n

    Fin

    acciones

    Condición

    Condición

    Acciones A

    Acciones B

    While condición

    Los formularios tienen propiedades Picture, igual que los objetos Imagen y que los objetos cuadro de imagen. Cuando se carga un gráfico en un formularo, aparece en el fondo. Cualquier control visible del formulario aparecerá por encima del gráfico.

    Condición 1

    Condición 2

    Acciones

    False

    True

    True

    Sentencias