Operadores de Visual Basic 4.0

Informática. {POO}. Programación. Programas informáticos. Operadores matemáticos. Expresiones aritméticas. Estructuras de control. Módulos y procedimientos

0 downloads 91 Views 56KB Size

Story Transcript

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 Forma Botón de etiqueta (Label1) Botón de etiqueta (Label2) Botón de etiqueta (Label3) Botón de etiqueta (Label4) Botón de texto (Text1) Botón de texto (Text2) Botón Frame (Frame1) Botón de opción (Option 1) Botón de opción (Option 2) Botón de opción (Option 3) Botón de opción (Option 4) Botón de orden (Command1)

Propiedad Caption Caption Caption Caption Caption Text Text Caption Caption Caption Caption Caption Caption

Ajuste del momento de diseño Prueba Operadores básicos Variable 1 Variable 2 Resultado

Operador Suma (+) Resta (−) Multiplicación (*) División (/) Calcular 1

Botón de orden (Command2)

Caption

Salir

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

2

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

3

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 4

• 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 5

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 >

Mayor que

<

Menor que

=

Igual a

>=

Mayor o igual que

<=

Menor o igual que

Expresión condicional

Descripción Devuelve True si el valor a su izquierda es lblVentas:Caption > Objetivo numérica o alfabéticamente mayor que el que está a su derecha Devuelve True si el valor a su izquierda es Pago < 2000.00 numérica o alfabéticamente menor que el que está a su derecha Devuelve True si los valores comparados son Edad = Limite iguales Devuelve True si el valor a su izquierda es Nombre >= Miguel numérica o alfabéticamente igual o mayor que el que está a su derecha Num <= lblMonto.Caption Devuelve True si el valor a su izquierda es numérica o alfabéticamente menor o igual 6

<>

Distinto de

TxtRes.Text <> Si

que el que está a su derecha 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. 7

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 8

Forma Botón de orden (Command1) Botón de orden (Command2) Botón de orden (Command3)

Caption Name Caption Name Caption Name Caption Name

Sentencia if...Then frmSeleccion Entra X cmdObtenerX Entra Y cmdObtenerY Imprime el Mayor 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" 9

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 10

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 11

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.

12

• 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 And

If (A>B) And (C
Or

If (A>B) Or (C
Not

Not Precio < 100

Xor

Significado Es una y lógica o conjunción. Si ambas expresiones condicionales son Verdadero, el resultado es Verdadero. Si alguna de las dos expresiones es Verdadero, el resultado es Verdadero. Si la expresión condicional es Falso, el resultado es Verdadero. Si la expresión condicional es Falso, el resultado es Verdadero. 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 Forma Botón de orden (Command1) Botón de etiqueta (Label1)

Propiedad Caption Name Caption Name Caption

Ajuste del momento de diseño

Acceso Introduzca su nombre 13

Botón de etiqueta (Label2) Botón de texto (Text1) Botón de texto (Text2)

Name Caption Introduzca su contraseña Name Caption Name 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 14

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

15

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 Botón de etiqueta (Label1) Botón de etiqueta (Label2) Botón de etiqueta (Label3) Botón de etiqueta (Label4)

Botón de orden (Command1) Botón cuadro de lista (List1)

Propiedad Caption Font Caption Caption Caption BorderStyle ForeColor Caption

Ajuste del momento de diseño Programa de bienvenida internacional Times New Roman, Negrita, 14 Seleccione un país (vacío) (vacío) 1 − Fixed Single Rojo oscuro (&H00000080&) Salir

• 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 16

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 17

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 ... 18

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

19

• 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: 20

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

21

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.

22

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 23

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") 24

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

25

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 26

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 27

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 Len() Mid() Chr() Asc() Ucase() Lcase() InStr()

Descripción Devuelve la longitud de una cadena Devuelve parte de una cadena Devuelve el carácter del código Devuelve el código del carácter Convierte a mayúsculas Convierte a minúsculas Devuelve la posición de la subcadena

Ejemplo de uso iLen=Len(Hola) Mid(Hola,1,2) sChar=Chr(65) iCode=Asc(A) sUp=Ucase(hola) sLow=Lcase(Hola) iSub=InStr(Hola,a)

Valor devuelto ILen=4 sStr=Ho sChar=A iCode=65 sUp=HOLA sLow=hola 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 28

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) 29

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 Formulario Botón de comando Botón de comando Botón de comando

Propiedad Name Caption Name Caption Name Caption Name Caption

Ajuste de momento de diseño frmEncrypt Ejervicio de Procedimiento/Función CmdGet Obtener Frase CmdEncrypt Cifrar CmdDecrypt Decifrar

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

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

31

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 32

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.