Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACIN ESTRUCTURADA
Los pasos a seguir para realizar un programa son los siguientes: Anlisis del problema Algoritmo Codificacin
Algoritmos
Un algoritmo es la representacin convencional de la resolucin de un problema de programacin. Es un mtodo de resolucin que no depende del lenguaje de programacin, pero que tiene que ser comprendido por cualquier programador.
C
A> 0
NO
R= SI S
R= NO
pseudo cdigo
F
En el momento de representar la informacin que se obtuvo en el anlisis del problema se elige diagramas o pseudo cdigo o en algunos casos para una mejor orientacin se utilizan ambos. El algoritmo debe poseer tres partes bien ordenadas : Entrada de datos Proceso Salida de datos Estas caractersticas se respetan para que el algoritmo pueda ser comprendido por cualquier programador en forma universal
Codificacin
La codificacin se realiza a travs de un lenguaje de programacin Existen dos tipos: lenguajes de alto nivel y de bajo nivel. En este espacio nos dedicaremos mas adelante a un lenguaje de alto nivel que se llama VISUAL BASIC. Los lenguajes de programacin interpretan lo que el programador pretende para luego transformarlo en cdigo de maquina. El proceso es el siguiente: el programador escribe el cdigo segn el algoritmo preestablecido. Esta parte de la programacin se llama cdigo fuente:
Una vez terminado el cdigo fuente sin errores (la forma de corregir errores es depurando el programa) se hace un compilacin definitiva (definitiva porque mientras se escribe el cdigo fuente se van haciendo compilaciones parciales para poder ir depurando el programa) transformando el programa en un archivo ejecutable desde cualquier computadora que posea Windows como sistema operativo. Los programas de alto nivel no son entendibles directamente por la computadora. Estos necesitan ser traducidos a lenguaje de mquina (0 y 1) para que puedan ser interpretados. Los programas que realizan esta traduccin se llaman compiladores. El compilador traduce el cdigo fuente (cdigo del programador) a cdigo objeto (cdigo de mquina) El archivo ejecutable se llama cdigo objeto:
Otra forma alternativa para crear un nuevo proyecto es la siguiente: 1. Ir al men Archivo 2. Elegir la opcin Nuevo Proyecto 3. Seleccionar el tipo de proyecto a crear Despus de crear el proyecto, aparecer una ventana similar a la de la siguiente figura. Se pueden observar los principales componentes del entorno de Visual Basic.
Barra de Men Barra de Ttulo Barra de Herramientas
Barra de Ttulo
Es la barra horizontal situada en la parte superior de la pantalla, que es comn a todas las aplicaciones de Windows. En Visual Basic, la barra de ttulos informa el nombre del proyecto que tenemos abierto y el estado del mismo, es decir, si estamos en tiempo de diseo, de ejecucin, o en pausa.
Barra de menes
Por medio de esta barra se puede acceder a todas las funciones incorporadas en Visual Basic. En realidad, existen varios botones o teclas rpidas que eliminan la necesidad de recurrir a los menes para ciertas funciones, pero nunca esta dems prever este medio de acceso a la informacin.
Barra de herramientas
Mediante la barra de herramientas podemos acceder a funciones sin tener que utilizar el men o un atajo de teclado. Pueden observar todos los botones que incluye la barra de herramientas de Visual Basic.
La pgina de formularios es donde colocaremos todos los objetos para las interfaces grficas. La pagina de cdigo en donde se introducirn los comandos y las propiedades que se cambiaran en tiempo de ejecucin, tambin se colocan los eventos a los que tiene que reaccionar cada objeto.
Botn de opcin
Lista
Explorador de proyectos
Se utiliza para desplazarse por los formularios y mdulos de un proyecto. Es simplemente una ventana que nos permite acceder al cdigo de un modulo o formulario, o el diseo del mismo. Para cada modulo o formulario, en el explorador de proyecto aparecen dos nombres. El de la izquierda es el de la propiedad que se le dio al objeto, y el d la derecha es al nombre con que se guardo el objeto en el disco.
Ventana de propiedades
A travs de esta ventana podemos modificar todas las propiedades de los controles u objetos deseados en tiempo de diseo. Las propiedades tambin se pueden cambiar en tiempo de ejecucin.
Formularios
Los formularios son las ventanas mediante las cuales los usuarios interactan con la aplicacin. Lo primero que debemos hacer, al comenzar un nuevo proyecto, es definir todas las ventanas que formaran parte del programa, y luego determinar su apariencia (propiedades) y comportamiento (eventos). Por lo general se trabaja con los formularios en tiempo de diseo; es decir, ni bien se comienza a modelar el programa. En tiempo de ejecucin lo que se suele hacer es ocultar o redefinir el tamao de un formulario.
Controles
Los controles son todos los objetos que se incrustan en los formularios y mediante los cuales se realizan las acciones. Con ellos podemos escribir y recibir texto (etiquetas y cajas de texto), usar botones de comando, insertar o manipular imgenes, utilizar cuadros de dialogo y mucho ms.
Propiedades
Las propiedades son atributos que tienen los objetos. Todas tienen un valor que determina el estado de un objeto. En tiempo de diseo se establecen las propiedades que tendrn los objetos al iniciarse el programa y luego, en tiempo de ejecucin, se escribe el cdigo necesario para modificar los valores de las propiedades de los controles.
Mtodos
Los mtodos son funciones propias de cada objeto. As como las propiedades afectan lo que son los objetos, los mtodos influyen en lo que hacen los mismos. Afectan el comportamiento de los objetos en un programa, y solamente se los utiliza en tiempo de ejecucin (a diferencia de las propiedades, que tambin se pueden establecer en tiempo de diseo).
Eventos
Los eventos son sucesos a los que debe responder el programa. La mayora del cdigo que hay que escribir en Visual Basic se debe a procedimientos de sucesos (que definen cmo va a responder el programa ante un evento) y a funciones definidas por el usuario (que ayudan a los procedimientos de suceso a realizar un trabajo). En una aplicacin controlada por eventos, la ejecucin no sigue una ruta predeterminada, sino que ejecuta distintas secciones de cdigo como respuesta a eventos. Los eventos pueden desencadenarse por acciones del usuario, mensajes del sistema o de otras aplicaciones, o incluso desde la propia aplicacin. La secuencia de estos eventos determina la secuencia en la que se ejecuta el cdigo. Por tanto, la ruta a travs del cdigo de la aplicacin difiere cada vez que se ejecuta el programa.
Una parte esencial de la programacin controlada por eventos consiste en escribir cdigo que responda a los posibles eventos que pueden ocurrir en una aplicacin. Visual Basic facilita la implementacin de un modelo de programacin controlada por eventos.
Si omite el nombre de la propiedad establecer la propiedad predeterminada del control. La propiedad predeterminada de un cuadro de texto es Text La propiedad predeterminada de una etiqueta es Caption.
Ejercicio N 1 Realizar un programa que presionando un botn me permita copiar lo que hay en un cuadro de texto (T1) en otro (T2)
Windowstate (estado de ventana): Esta propiedad define el estado visual que tendr una ventana al ejecutarse. Acepta los siguientes valores: 0- Normal 1- Minimizada 2- Maximizada Name (nombre): Esta propiedad se utiliza solamente en la codificacin. Es el nombre que utiliza para hacer referencia al formulario. El valor por omisin es Forml. Appearance (Apariencia): Determina si el formulario (y controles del formulario) tendr apariencia tridimensional. Si se deja el valor por omisin que es 1, el formulario tendr una apariencia tridimensional. Si se cambia a 0, el formulario tendr aspecto plano (cada control tiene su propiedad de apariencia). Caption (ttulo): Define el titulo del formulario. Tambin es el ttulo que usa Windows para el icono de la aplicacin cuando el usuario lo minimiza. Enabled (activado): Esta propiedad es una de las que no hay que cambiar de manera fortuita. S se pone a False, el formulario no responder a ningn evento. Normalmente esta propiedad se cambia de True a False como respuesta a algn evento. Para hacer que los formularios respondan dinmicamente es preciso escribir cdigo. Height, Width (Alto, ancho): Define el alto y ancho de un formulario, puede ser variada tanto en tiempo de diseo como en tiempo de ejecucin. Icon (icono): Se utiliza con frecuencia. Determina el icono que mostrara su aplicacin cuando se minimice en la barra de herramientas, o en el escritorio de Windows cuando se convierta en una aplicacin independiente. Visual Basic esta dotado de una gran biblioteca de iconos que el usuario puede utilizar libremente. Left, Top (Izquierda, arriba): Determina la distancia entre la parte izquierda o superior del formulario y la pantalla. Si el valor de la propiedad Top es 0, el formulario que se esta diseando quedara a ras del borde superior. Si se asigna 0 a la propiedad Left el formulario estar pegado al borde izquierdo de la pantalla. Estos parmetros funcionan de la misma forma que las propiedades Height y Width (Alto y ancho). Mousepointer (puntero del ratn).- Establece la forma del puntero del ratn. El valor por omisin es 0, pero como indica la lista desplegable, hay otros 17 valores. Los valores que ms se emplean son el 11 y el 13. El valor 11- Hourglass cambia el puntero del ratn por un reloj de arena, y como en otras aplicaciones de Windows, se emplea para indicar al usuario que tiene que esperar hasta que la PC termine lo que esta haciendo. Visible (visible): Esta es otra de las propiedades que es peligroso cambiar por error. Si se asigna el valor a False a esta propiedad, el formulario no estar visible, normalmente solo se quiere hacer invisible un formulario cuando se esta diseando un aplicacin con varios formularios. Esta propiedad se utiliza por lo general en tiempo de ejecucin.
Top, Left, Height, Width, Enabled, Visible, Name son validas para todos los objetos.
Ejercicio N 2 Realizar un programa que presionando un botn me permita cambiar el color de fondo de un formulario. Ejercicio N 3 Realizar un programa que contenga tres botones. Al presionar cada uno deber cambiar el color de fondo del formulario. Ejercicio N 4 Realizar un programa que contenga cuatro botones. Al presionar cada uno deber cambiar el puntero del Mouse sobre el formulario.
La ventana de cdigo
Si se trabaja con ms de un formulario se tendr ms de una ventana de cdigo (corresponde una ventana de cdigo por cada formulario).
Caja de Objetos Caja de Eventos
LA caja de objeto tiene todos los objetos que aparecen en el formulario. La caja de eventos tiene todos los eventos del objeto seleccionado en la caja de objeto.
En Visual Basic trabajar con dos tipos de procedimientos dentro de la ventana de cdigo: procedimientos de evento y procedimientos generales. Procedimientos de evento: Visual Basic llama automticamente a los procedimientos de evento como respuesta a una accin del teclado, del rmouse o del sistema. Por ejemplo, los botones de comando tienen un procedimiento de evento Clic. Cualquiera que sea el cdigo colocado en un procedimiento de evento Clic, se ejecutar cuando el usuario haga clic en un botn de comando. Para abrir una ventana Cdigo, haga
10
doble clic en el control o en el formulario, o bien haga clic en el comando Cdigo del men Ver. Cada control posee un conjunto fijo de procedimientos de evento. Los procedimientos de evento para cada control aparecen en un cuadro de lista desplegable en la ventana Cdigo. El siguiente ejemplo de cdigo muestra el procedimiento de evento Click de un botn de comando llamado cmdOK: Private Sub cmdOK_Click() MsgBox "Hola" End Sub Procedimientos generales: Los procedimientos generales son procedimientos Sub o Function que se crean para realizar determinadas tareas. Para ejecutarlos, es necesario invocarlos explcitamente. Para crear un procedimiento general, abra una ventana Cdigo y haga clic en el comando Agregar procedimiento del men Herramientas. Tambin puede crear un procedimiento nuevo si escribe el encabezado Sub, seguido del nombre del procedimiento, en una lnea en blanco de la ventana Cdigo. Si tiene cdigo duplicado en varios procedimientos de evento, puede colocar el cdigo en un procedimiento general y despus llamar al procedimiento general desde los procedimientos de evento. Sub limpieza () Txtcuadro.text = End sub Call Limpieza Un sencillo ejemplo de un procedimiento que vaca el contenido de una caja de texto. Para llamar a los procedimientos se utiliza la palabra clave Call. Ejemplo de una funcin: Function Suma(Operandol As Integer,operando2 as Integer) As Integer Suma = Operandol + Operando2 End Function Dim Opl As Integer Dim Op2 As Integer Dim Resultado As Integer Opl = 2 Op2 = 9 Resultado = Suma (Op1, Op2) En este ejemplo vemos, primero, como se declaran las funciones y luego, como se las invoca (enviando los parmetros correspondientes).
CONTROLES ESTNDAR
Propiedades como Visible, Enabled, Name, Top, Left, Heigth, Width son comunes a los formulario y a todos los controles.
11
Etiquetas (propiedades)
Las etiquetas se usan en Visual Basic para agregar un texto esttico. Esto significa que son tiles para mostrar leyendas, ttulos o presentar resultados. Los usuarios no pueden modificar la informacin que se presenta usando etiquetas (a diferencia de las cajas de texto). Alignment (alineacin): Esta propiedad tiene tres valores posibles., El valor por defecto es 0, con lo cual el texto estar justificado hacia la izquierda. El valor 1 justifica hacia la derecha, mientras que el 2 permite centrar el texto de la etiqueta. Autosize(tamao automtico): Con esta propiedad podemos ajustar automticamente el tamao del control segn el texto a desplegar. Tiene dos valores posibles: False o True. Wordwrap (enlace de texto): Con esta propiedad podemos prever que pasara cuando el texto de una etiqueta sea ms largo que el control. Si la propiedad est en True, el texto se enlazar y crecer en forma vertical. De lo contrario el tamao del control crecer horizontalmente hasta abarcar el texto.
12
Multiline (lnea mltiple): Determina si la caja de texto puede soportar ms de una lnea. Esta propiedad se combina generalmente con Scrollbars para permitirles a los usuarios moverse fcilmente por este control. Los valores posibles son dos: True o False. Scrollbars (barras de desplazamiento): Con esta propiedad podemos determinar si una caja de texto posee barras de desplazamiento horizontales o verticales. Estas barras son muy tiles, ya que Visual Basic permite cajas de texto con Mltiples lneas y ayudan al usuario a moverse en dicho control. Passwordchar (caracteres especiales): Mediante esta propiedad podemos usar caracteres especiales para mostrar la informacin que se ingresa en la caja de texto. Text (texto): Controla el texto que el usuario ve o devuelve por medio de este objeto. Al crear una caja de texto en tiempo de diseo, podemos agregarle a Text el contenido que mostrara la caja (o borrar el valor original para no mostrar texto). En tiempo de ejecucin se suele llamar a esta propiedad para conocer el texto que el usuario ingreso o modifico de la caja de texto.
Marco (propiedades)
Los marcos se usan para agrupar fcilmente controles y hacer ms extensible una interfaz. Poseen varias propiedades similares a la de otros objetos (como por ejemplo: color, leyenda, etc.).
13
14
Temporizadores (propiedades)
Mas conocidos como Timer este control se usa cuando se desea que el programa repita una accin cada cierto intervalo de tiempo. Enabled (activo): Esta propiedad indica si el temporizador debe comenzar a avanzar o no. Soporta dos valores: True o False. Interval (intervalo): Determina el tiempo que debe esperar Visual Basic parra generar el evento Timer. Se mide en milisegundos y si el intervalo es 0, se desactiva el temporizador.
Figuras (propiedades)
Las figuras son controles grficos que despliegan rectngulos, crculos, elipses y otras formas ms. Fillstyle (estilo de relleno): Establece en que estilo se va a llenar la figura. Soporta los siguientes valores: 01234567Slido Transparente Lneas horizontales Lneas verticales Diagonales ascendentes Diagonales descendentes Cuadriculado Cuadriculado diagonal
Shape (figura): Determina el tipo de figura a desplegar. Los valores que acepta esta propiedad son:
15
012345-
Lneas (propiedades)
Este control despliega lneas horizontales, verticales o diagonales. Boderstyle (estilo de borde): Determina el estilo de borde de la lnea. Los valores posibles son: 0123456Sin borde Slido Lnea rayada Lnea punteada Lnea con raya - punto Lnea con raya - punto - punto Slido por dentro (el lmite exterior del borde es el lmite exterior de la figura).
Borderwidth (ancho de borde): El valor de esta propiedad indica el ancho que tendr la lnea.
Control de imagen
Los controles de imgenes se utilizan para mostrar grficos. Stretch (estiramiento): Mediante esta propiedad podemos determinar si el grfico se estira para ajustarse al control o viceversa. Soporta dos valores: True (el grfico reajusta su tamao para adaptarse al control) o False (el control reajusta su tamao para adaptarse al grfico).
Eventos ms importantes
Evento Load Unload Clic Dblclic Gotfocus Lostfocus Keydown Keypress Keyup Mousemove Mousedown Mouseup Descripcin Se activa al cargar el formulario Se activa cuando se est por descargar un formulario Se activa cuando hacemos un clic de mouse sobre un objeto Se activa cuando presionamos dos veces el botn izquierdo del mouse Se activa cuando un objeto recibe el foco Se activa cuando un objeto pierde el foco Se activa mientras mantenemos presionada una tecla Se activa cuando presionamos una tecla Se activa al soltar una tecla Se activa cuando el usuario mueve el mouse Se activa mientras el usuario mantiene apretado el botn derecho del mouse Se activa al soltar el botn derecho del mouse
16
17
Unidad N. 2
Editor de mens
En Visual Basic, puede crear mens utilizando la ventana Editor de mens disponible en el men Herramientas, Editor de mens. A continuacin se describen brevemente los elementos de este cuadro de dilogo mas importantes: Cuadro de texto Caption (ttulo): Lo que introduzca en el cuadro de texto Caption es lo que ver el usuario. El ttulo tambin se muestra en la zona de texto del cuadro de dilogo. A diferencia de otros controles de Visual Basic, los elementos de men no disponen ttulos por omisin. Las teclas de acceso al cuadro de texto Caption en la ventana Editor de Mens son ALT + P. Cuadro de texto Name (nombre): Cada elemento de un men debe tener un nombre de control. Lo que se introduzca en el cuadro de texto Name es el nombre de control que utilizar Visual Basic en el procedimiento de evento Click para el elemento de men. Visual Basic no permite cerrar el cuadro de dilogo Editor de Mens hasta que se haya asignado un nombre de control a cada elemento del men. Las teclas de acceso son ALT' + M. Botones Aceptar y Cancelar: Pulse el botn Aceptar cuando haya finalizado el diseo del men. Si decide no crear el men, pulse el botn Cancelar. Incluso despus de terminar de disear un men y haber pulsado el botn Aceptar, se puede volver a la ventana Editor de, mens para realizar modificaciones en el mismo. Cuadro Shortcut (abreviatura de teclado): Permite definir abreviaturas de teclado para acceder a los elementos del men.
18
A medida que sus aplicaciones vayan siendo ms complicadas, no desear estar restringido a aplicaciones limitadas a un nico formulario. El uso de varios formularios aade flexibilidad y potencia a las aplicaciones. Esto termina con los problemas de los controles que tapan el texto escrito en un formulario. Para aadir formularios adicionales a una aplicacin que se est diseando, abra el men Proyecto y seleccione Agregar formulario. La ventana Explorador de proyectos lista todos los formularios en orden alfabtico, con su nombre seguido por la extensin frm. Si los formularios no estn visibles, ample el rbol del Explorador de proyectos. Visual Basic guarda almacenado cada formulario en un archivo separado, y usa el archivo vbp (de proyecto) para anotar dnde se encuentran almacenados.
19
Me. Hide Unload (descargar). Borra el formulario de la memoria (tiene el mismo efecto que pulsar el botn de salida o pulsar dos veces en el cuadro de control). Se pierde toda la informacin contenida en sus variables a nivel de formulario. La sintaxis de esta orden es Unload NombreFormulario Ejercicio N 7 Idem anterior. Pero al presionar un boton (ver) que muestre en una lista de otro formulario todos los datos en un rengln. Ejercicio N 8 Realizar un programa que permita ingresar una temperatura en grados Celsius y convierta el nmero en grados Fahrenheit (la formula es Fahrenheit = (celsius * 9/5) + 32) y cuando ingrese una temperatura en grados Fahrenheit la pase a celsius (la formula es celsius = (Fahrenheit 32) * 5/9). El programa debe tener un men Archivo y Ayuda. Dentro de archivo una opcin que sea Salir y dentro de ayuda una opcin Acerca de... que muestre un formulario con una imagen y un comentario sobre el programa.
Variables
Las variables en programacin son como cajones donde se almacenan informacin. En realidad son lugares de memoria que el programa determina para su utilizacin. El tipo de variable depende de la informacin que voy a almacenar. Por ejemplo si la variable va a contener nmeros ser de tipo numrica (Integer) y las que almacenan texto sern alfanumricas (String).
A1= %$^&#@
El contenido de las variables alfanumricas se escribe entre comillas porque se refiere a texto. En programacin todo lo que esta entre comillas es texto y se pone de esta forma para que se diferencie de los nombres de las variables Los nmeros pasan a ser contenidos alfanumricos si se encuentran entre comillas. Ej. : La variable Fecha
En programacin no existe la igualdad de variables a pesar que se utiliza el signo =, el nombre correcto es asignacin, y significa que todo lo que est del lado derecho del signo igual pasa del lado izquierdo. Ej. : A= 12345
Asignacin
Definicin de variables
Las variables se definen al comienzo del programa para que el compilador prepare la memoria que se va a utilizar cuando este se ejecute. El nombre de las variables puede ser una cadena (texto) de no ms de 255 caracteres. La definicin en Visual BASIC se realiza de la siguiente forma: Dim a as String Significa dimensionar la variable a como variable de cadena (alfanumrica). Dim b as Integer Significa dimensionar la variable b como variable entera (numrica, o mejor dicho numero entero) Aparte de los tipos de variables String e Integer existen otros que mencionaremos a continuacin: Variant: este tipo de variables reemplaza a cualquier tipo de variables. Se utiliza habitualmente cuando no s que contenido va a tener la variable, pero tiene un defecto que ocupa mucho lugar en la memoria. Single: Se utiliza para los nmeros con siete dgitos de precisin, incluyendo los decimales. Double: Se utiliza para los nmeros con once dgitos de precisin, incluyendo decimales. Byte: Es un nmero entero chico (de 0 a 255) Long: Es un nmero entero largo (ms grande que 32.767 que es hasta donde llega Integer).
21
Boolean: Puede tomar solo los valores True (verdadero) y False (falso). Date: Se usa con variables que contienen fechas.
Y suponer que se trata de tres variables enteras. De hecho en este ejemplo, por omisin X, Y son variantes y Z es una variable entera. La forma correcta seria:
Dim X As Integer, Y As Integer, Z As Integer
22
Niveles de definicin
Variables a nivel procedimiento:
El ejemplo muestra un cuadro de texto que permite ingresar el nombre del botn. Cada vez que hago click en el botn el texto escrito en el cuadro pasa a ser el nombre del botn Las variables que se utilizan de esta manera, como A, solo mantienen su contenido dentro del procedimiento Private Sub Botn_Click() en otro procedimiento no tendr ni definicin ni valor. Variables a nivel formulario:
Dim A As Integer
Private Sub Sumador_Click() A = A + 1 End Sub Private Sub Ver_Click() Text1.Text = Str(A) End Sub Este programa de ejemplo muestra un sumador que incrementa el valor de la variable A, que ser mostrada en el cuadro de texto cuando presione el botn ver. En realidad el cuadro de texto mostrara cuantas veces se hace click en botn sumador. Cuando la variable A se declara fuera de cualquier procedimiento conserva su contenido en todo el formulario. Por este motivo la variable A se incrementa en un procedimiento y se muestra en otro. Variables a nivel proyecto: Proyecto Form 1 Private Sub Pasar_Click() Unload Form1 Form2.Show End Sub Private Sub Sumador_Click()
23
A = A + 1 End Sub Form 2 Private Sub Ver_Click() Text1.Text = Str(A) End Sub
Mdulo
Este ejemplo es muy parecido al anterior pero el contador se realiza en un formulario (Form1) y la muestra en otro (Form2). La declaracin se realiza en un mdulo y se reemplaza la instruccin Dim por la instruccin Public. La declaracin de una variable en un mdulo significa que se mantiene su contenido en todo el proyecto o mejor dicho en todos los formularios del proyecto. El agregado de un mdulo se realiza de la misma forma que se agrega un formulario nuevo (Proyecto Agregar mdulo).
Estructuras de Control
Las estructuras de control le permiten controlar el flujo de ejecucin del programa. Tenemos dos tipos de estructuras de control: Estructuras de decisin Estructuras de bucle
Estructuras de Decisin
Los procedimientos de Visual Basic pueden probar condiciones y, dependiendo de los resultados, realizar diferentes operaciones. Entre las estructuras de decisin que acepta Visual Basic se incluyen las siguientes: If...Then If...Then...Else Select Case
24
If...Then Use la estructura If...Then para ejecutar una o ms instrucciones basadas en una condicin. Puede utilizar la sintaxis de una lnea o un bloque de varias lneas:
Condicin normalmente es una comparacin, pero puede ser cualquier expresin que d como resultado un valor numrico. Visual Basic interpreta este valor como True o False; un valor numrico cero es False y se considera True cualquier valor numrico distinto de cero. Si condicin es True, Visual Basic ejecuta todas las sentencias que siguen a la palabra clave Then. Puede utilizar sintaxis de una lnea o de varias lneas para ejecutar una sentencia basada en una condicin, los siguientes ejemplos son equivalentes: If cualquierFecha < Now Then CualquierFecha = Now
Observe que el formato de una nica lnea de If...Then no utiliza la instruccin End If. Si se desea ejecutar ms de una lnea de cdigo cuando condicin sea True, debe utilizar la sintaxis de bloque de varias lneas If...Then...End If. If cualquierFecha < Now Then CualquierFecha = Now Timer1.Enabled = False End If
If
If...Then...Else Utilice un bloque If...The...Else para definir varios bloques de sentencias, uno de los cuales se ejecutar: If condicin1 Then [bloque de sentencias 1] [ElseIf condicin2 Then [bloque de sentencias 2]] ... [Else [bloque de sentencias n]] End If
25
Visual Basic evala primero condicin1. Si es False, Visual Basic procede a evaluar condicin2 y as sucesivamente, hasta que encuentre una condicin True. Cuando encuentra una condicin True, Visual Basic ejecuta el bloque de instrucciones correspondientes y despus ejecuta el cdigo que sigue a End If. Opcionalmente, puede incluir un bloque de instrucciones Else, que Visual Basic ejecutar sin ninguna de las condiciones es True. If...Then...ElseIf es un caso especial de If...Then...Else. Observe que puede tener cualquier nmero de clusula ElseIf o ninguna. Puede incluir una clusula Else sin tener en cuenta si tiene o no clusula ElseIf. Por ejemplo, la aplicacin podra realizar distintas acciones dependiendo del control en que se haya hecho clic de una matriz de controles de men: Private Sub mnuCut_Click (Index As Integer) If Index = 0 Then CopyActiveControl ClearActiveControl ElseIf Index = 1 Then CopyActiveControl ElseIf Index = 2 Then ClearActiveControl Else PasteActiveControl End If End Sub Observe que siempre puede agregar ms clusulas ElseIf a la estructura If...Then. Sin embargo, esta sintaxis puede resultar tediosa de escribir cuando cada ElseIf compara la misma expresin con un valor distinto. Para estas situaciones, puede utilizar la estructura de decisin Select Case. Select Case Visual Basic proporciona la estructura Select Case como alternativa a If...Then...Else para ejecutar selectivamente un bloque de sentencias entre varios bloques. La sentencia Select Case ofrece posibilidades similares a la instruccin If...Then...Else, pero hace que el cdigo sea ms legible cuando hay varias opciones. La estructura Select Case funciona con una nica expresin de prueba que se evala una vez solamente, al principio de la estructura. Visual Basic compara el resultado de esta expresin con los valores de cada Case de la estructura. Si hay una coincidencia, ejecuta el bloque de sentencias asociado a ese Case:
Select Case expresin_prueba [Case lista_expresiones1 [bloque de sentencias 1]] [Case lista_expresiones2 [bloque de sentencias 2]] . . . [Case Else [bloque de sentencias n]] End Select
26
Cada lista_expresiones es una lista de uno a ms valores. Si hay ms de un valor en una lista, se separan los valores con comas. Cada bloque de sentencias contiene cero o ms instrucciones. Si ms de un Case coincide con la expresin de prueba, slo se ejecutar el bloque de instrucciones asociado con la primera coincidencia. Visual Basic ejecuta las instrucciones de la clusula (opcional) Case Else si ningn valor de la lista de expresiones coincide con la expresin de prueba. Por ejemplo, suponga que agrega otro comando al men Edicin en el ejemplo If...Then...Else. Podra agregar otra clusula ElseIf o podra escribir la funcin con Select Case: Private Sub mnuCut_Click (Index As Integer) Select Case Index Case 0 CopyActiveControl ClearActiveControl Case 1 CopyActiveControl Case 2 ClearActiveControl Case 3 PasteActiveControl Case Else frmFind.Show End Select End Sub
Select Case TipoUsuario Case Supervisor ... ... Case Usuario ... ... Case Else ... ... End Select
Observe que la estructura Select Case evala una expresin cada vez que al principio de la estructura. Por el contrario, la estructura If...Then...Else puede evaluar una expresin diferente en cada sentencia ElseIf. Slo puede sustituir una estructura If...Then...Else con una estructura Select Case si la instruccin If y cada instruccin ElseIf evala la misma expresin.
27
Estructuras de Repeticin
Las estructuras de repeticin o bucle le permiten ejecutar una o ms lneas de cdigo repetidamente. Las estructuras de repeticin que acepta Visual Basic son: Do...Loop For...Next
Do...Loop Utilice el bucle Do para ejecutar un bloque de sentencias un nmero indefinido de veces. Hay algunas variantes en la sentencia Do...Loop, pero cada una evala una condicin numrica para determinar si contina la ejecucin. Como ocurre con If...Then, la condicin debe ser un valor o una expresin que d como resultado False (cero) o True (distinto de cero). En el siguiente ejemplo de Do...Loop, las sentencias se ejecutan siempre y cuando condicin sea True: Do While condicin Sentencias Loop Cuando Visual Basic ejecuta este bucle Do, primero evala condicin. Si condicin es False (cero), se salta todas las sentencias. Si es True (distinto de cero) Visual Basic ejecuta las sentencias, vuelve a la instruccin Do While y prueba la condicin de nuevo. Por tanto, el bucle se puede ejecutar cualquier nmero de veces, siempre y cuando condicin sea distinta de cero o True. Nunca se ejecutan las sentencias si condicin es False inicialmente. Otra variante de la instruccin Do...Loop ejecuta las sentencias primero y prueba la condicin despus de cada ejecucin. Esta variacin garantiza al menos una ejecucin de sentencias: Do Sentencias Loop While condicin Hay otras dos variantes anlogas a las dos anteriores, excepto en que repiten el bucle siempre y cuando condicin sea False en vez de True. Hace el bucle cero o ms veces Do Until condicin Sentencias Loop Hace el bucle al menos una vez Do Sentencias Loop Until condicin
28
For...Next Los bucles Do funcionan bien cuando no se sabe cuntas veces se necesitar ejecutar las sentencias del bucle. Sin embargo, cuando se sabe que se va a ejecutar las sentencias un nmero determinado de veces, es mejor elegir el bucle For...Next. A diferencia del bucle Do, el bucle For utiliza una variable llamada contador que incrementa o reduce su valor en cada repeticin del bucle. La sintaxis es la siguiente: For contador = iniciar To finalizar [Step incremento] Sentencias Next [contador] Los argumentos contador, iniciar, finalizar e incremento son todos numricos. Nota: El argumento incremento puede ser positivo o negativo. Si incremento es positivo, iniciar debe ser menor o igual que finalizar o no se ejecutarn las sentencias del bucle. Si incremento es negativo, iniciar debe ser mayor o igual que finalizar para que se ejecute el cuerpo del bucle. Si no se establece Step, el valor predeterminado de incremento es 1. Al ejecutar el bucle For, Visual Basic: 1. Establece contador al mismo valor que iniciar. 2. Comprueba si contador es mayor que finalizar. Si lo es, Visual Basic sale del bucle. (Si incremento es negativo, Visual Basic comprueba si contador es menor que finalizar.) 3. Ejecuta las sentencias. 4. Incrementa contador en 1 o en incremento, si se especific. 5. Repite los pasos 2 a 4. Este cdigo imprime los nombres de todas las fuentes de pantalla disponibles:
Private Sub Form-Click ( ) Dim I As Integer For i = 0 To Screen.FontCount Print Screen.Fonts (i) Next End Sub
29
For contador = iniciar To finalizar [Step incremento] [bloque sentencias] [Exit For] [bloque sentencias] Next [contador] Do [{While / Until} condicin] [bloque de sentencias] [Exit Do] [bloque de sentencias] Loop Do [bloque de sentencias] [Exit Do] [bloque de sentencias] Loop [{While / Until} condicin] Exit For y Exit Do son muy tiles ya que, algunas veces, resulta apropiado salir inmediatamente de un bucle sin realizar ms iteraciones o sentencias dentro del bucle. Cuando utilice la instruccin Exit para salir de un bucle, el valor de la variable contador difiere, dependiendo de cmo haya salido del bucle: Cuando termina un bucle, la variable contador contiene el valor del lmite superior ms el paso. Cuando sale de un bucle prematuramente, la variable contador conserva su valor segn las reglas usuales del alcance.
30