You are on page 1of 8

Servicio Nacional de Aprendizaje SENA

Programa de formacin: Tcnico en Sistemas Versin 1 Nivel: Tcnico


Sistema de Gestin de la Calidad

Fecha: Febrero 2 de 2011 Versin 1.0 Pgina 1 de 8

GUIA DE ACTIVIDADES DE PROGRAMACIN OREINTADA A EVENTOS

Nombre del Proyecto: ADMINISTRACIN DEL SOPORTE TCNICO EN


SISTEMAS A INSTITUCIONES EDUCATIVAS.

Duracin en meses: 18 meses

Fase del Proyecto:


CONCEPTUALIZACIN

Actividad de Proyecto
Recopilar informacin relacionada con el proyecto

Duracin en meses de la actividad 4 meses

Actividades de Aprendizaje Gua de conocimiento.

Duracin en horas de la actividad

Competencia: 220501046

APLICAR HERRAMIENTAS OFIMTICAS, REDES SOCIALES Y COLABORATIVAS DE ACUERDO CON LE PROYECTO A DESARROLLAR.

Resultados de Aprendizaje: Duracin 22050104604 APLICAR resultado:


CONTROLES Y ESTRUCTURAS BSICAS DE PROGRAMACIN DE UN LENGUAJE ORIENTADO A EVENTOS DE ACUERDO CON EL PROBLEMA A SOLUCIONAR.

en 90

horas

del

Visual Basic - Gua del Estudiante Cap. 2 Lenguaje Basic del Visual Basic.
No ha sido un juego de palabras. VB emplea unas instrucciones casi iguales a las que emplea Quick Basic. Sin embargo ha aadido otras nuevas instrucciones, inherentes con la programacin visual. Vamos a estudiar aqu las instrucciones y definiciones mas sencillas, comunes a QB y VB. Sentencias condicionales. Llamamos sentencias condicionales a aquellas que se realizan si se cumple una determinada condicin. Son las sentencias por las que empieza cualquier texto de Basic, y este no va ser menos. La sentencia condicional ms usada es: Si se cumple una condicin Entonces Realiza estas instrucciones Si no se cumple Realiza estas otras instrucciones
Visual Basic - Gua del Aprendiz Sena Captulo2 Pgina

Fin de la sentencia. As de fcil es programar en Basic. Lo que ocurre es que esta herramienta habla ingls, y lo descrito anteriormente toma la forma: If condicin Then Instrucciones Else Otras instrucciones End If En este ejemplo, o se cumple una condicin y ejecuta unas determinadas instrucciones, o no se cumple, y ejecuta otras instrucciones distintas. Puede ocurrir que, caso de no cumplirse la condicion primera, se abra un abanico de dos o tres posibilidades. La sentencia condicional tendra entonces la forma: If condicin 1 Then Instrucciones ElseIf Condicin 2 Otras instrucciones ElseIf Condicin 3 Otro juego de instrucciones Else Instrucciones que debe realizar caso de no cumplir las condiciones 1, 2 y 3. End If Como decamos anteriormente, este es el tipo de sentencia condicional mas usada. Existe otra sentencia condicional muy usada: Select Case Su nombre casi nos define lo que es: Selecciona, dependiendo del caso, un determinado juego de instrucciones: Select Case variable de 1 a 4 ' variable es una variable que puede tomar los valores (p.e.)

Case 1 Instrucciones a ejecutar en caso de que variable = 1 Case 2 Instrucciones a ejecutar en caso de que variable = 2 Case 3 Instrucciones a ejecutar en caso de que variable = 3 Case 4 Instrucciones a ejecutar en caso de que variable = 4 Case Else Instrucciones a ejecutar en caso de que variable sea distinta a los valores anteriores End Select Este procedimiento resulta mucho mas sencillo y rpido que las sentencias If Then Else vistas anteriormente, cuando el margen de eleccin es mayor que 2. Puede agrupar varios valores en una misma lnea. Por ejemplo, si tiene 100 valores posibles, y el tratamiento es igual para varios de ellos, puede agruparlos as:
Visual Basic Gua del aprendiz Sena Captulo 2 Pgina 2

Select Case Valor Case Is < 20 Instrucciones Case Is = 20 Instrucciones Case Is = 21, 22, 23, 24, 25, 26 Instrucciones Case Is > 26 Instrucciones End Select Cuando lo que queremos es elegir un valor, no ejecutar instrucciones como hacamos anteriormente, disponemos de otras dos funciones: Choose y Switch. Switch toma una serie de parmetros, todos por parejas. El primer trmino de cada pareja es la expresin a evaluar. El segundo es el valor que tiene que devolver. En realidad Switch es una funcin (las funciones las veremos muy pronto) A = Switch (B=1, 5, B=2, 7, B=3, 11) Esta instruccin obtiene un valor para A que depender del valor que tome B entre los valores posibles (1, 2 3) La sentencia Choose es casi igual, cambia solamente la forma. La misma intruccin anterior puede realizarse con Choose de la siguiente forma: A = Choose ( B, 5, 7, 11 ) En estas sentencias, Switch y Choose, si el valor de B no coincide con ninguno de los valores que se le haban establecido (1, 2 3 en nuestro caso), la sentencia devuelve el valor Nulo ( Null ). Esto puede producir algn error si no se contempla esa posibilidad. Las sentencias Switch y Choose no se usan mucho en programacin. Parece que los programadores o no las conocen o se lan (y es comprensible) al utilizarlas. Le garantizo que puede llegar a ser un gran programador sin necesidad de utilizarlas. Use preferentemente If End If y Select Case.

Otra sentencia condicional: IIF Devuelve uno de entre dos valores, dependiendo de la evaluacin de una expresin. Sintaxis Iif (Expresin, SiEsCierto, SiEsFalso)

Expresin es la expresin a evaluar. SiEsCierto SiEsFalso Observaciones IIf siempre evala SiEsCierto y SiEsFalso, aunque slo vaya a devolver una de ellas. Por esta razn, deber vigilar que no se produzcan efectos no deseados. Por ejemplo, si al evaluar SiEsFalso se produce un error de divisin entre cero, se generar un error aunque Expresin
Visual Basic Gua del aprendiz Sena Captulo 2 Pgina 3

Valor o expresin devuelta si Expresin es True. Valor o expresin devuelta si Expresin es False.

d como resultado True. Como ejemplo, en el formulario de nuestro primer programa introduzca un nuevo botn de comando. Introduzca tambin un TextBox. Vea que poco a poco vamos metiendo cosas aunque no las conocemos todava. Mas tarde las conocer. El TextBox tendr por nombre Text1. Haga doble click sobre el botn de comando e introduzca el siguiente cdigo : Private Sub Command2_Click() Dim MiVariable As String MiVariable = IIf(Clng(Text1.Text) > 100, "Es mayor", "Es menor") Label1 = MiVariable End Sub Al ejecutar el programa, debe introducir un valor numrico en Text1. Si ese valor numrico es menor que 100, MiVariable tomar el valor Es menor (No se cumple la condicin expresada en el primer parmetro Text1.Text > 1000). Si introduce una cantidad mayor, se cumple esa condicin, por lo que MiVariable tomar el valor Es mayor. El valor que toma la variable puede verlo en Label1. Fjese que hemos declarado MiVariable como String, ya que va a contener un dato tipo cadena de caracteres. Con estas sentencias condicionales es posible realizar bifurcaciones del programa, cambiar las propiedades de un objeto, obtener resultados de operaciones, ....

Sentencias de bucle.
Es muy comn utilizar bucles a lo largo de un programa. Un bucle es una sucesin repetitiva de instrucciones, que se estarn realizando mientras se cumpla una condicin o mientras no se cumpla otra condicin. Es tan sencillo como esto: Mientras condicin Instrucciones Fin del bucle Existen dos formas de bucle: Una, que realiza un nmero determinado de recorridos por el bucle. Es el denominado bucle por contador. Otra, realiza el bucle hasta que se cumpla (o deje de cumplirse) una condicin. Es el llamado bucle por condicin. Bucle por contador Realiza el bucle tantas veces como le indiquemos. Por ejemplo, en este bucle nos va a presentar las 26 letras maysculas del alfabeto ingls For N=65 To 90 Label1.caption = Chr ( N ) Next N Este "programa" nos presentar en una caja (Label) los caracteres cuyo nmero ASCII vaya desde el 65 (A) al 90 (Z) Comenzar presentando el correspondiente al nmero 65, e ir presentando sucesivamente el 66, el 67, etc., hasta llegar al 90, donde se parar. Bucles por condicin
Visual Basic Gua del aprendiz Sena Captulo 2 Pgina 4

Ejecuta las instrucciones del bucle mientras se cumple una condicin X=0 Do While X < 1000 X=X+1 Loop El programa toma una variable ( X ) que previamente tuvimos la curiosidad de ponerla a cero, e incrementa su valor una unidad. Analiza si el valor de X es menor que 1000, y si es cierto, vuelve a realizar el bucle. As hasta que X ya no sea menor que 1000. Al dejar de cumplirse que X sea menor que 1000, sale del bucle. Acabamos de realizar un temporizador, y tambin de exponer las sentencias condicionales y los bucles, inicio de cualquier curso de Basic. Como final de leccin, se propone un problema. Con el primer bucle, donde visualizbamos los caracteres A a la Z, posiblemente no nos diese tiempo de ver cada una de las letras que iban apareciendo en la pantalla, en la etiqueta Label1, dado que cambiara con mucha velocidad, y solamente veramos la Z, que es donde se detuvo el programa. Podemos poner un temporizador cada vez que presente una letra, y as nos dar tiempo a verla. Con los dos bucles vistos anteriormente ya podemos hacerlo. Si lo que queremos es que el programa se ejecute mientras no se cumpla una determinada condicin, la sentencia ser: X=0 Do Until X > 1000 X=X+1 Loop Observe que la diferencia entre una y otra es la condicin, While para indicar Mientras se cumpla que ... y Until para indicar Mientras no se cumpla que .... Para terminar bien el programa anterior utilizaremos la condicin de While cumpla la condicin) For N=65 To 90 Label1.caption = Chr ( N ) Label1.RefreshN X=0 Do While X < 1000 X=X+1 Loop Next N (Mientras se

' Refresca la etiqueta

Este es nuestro primer programa en BASIC. En VISUAL BASIC es idntico, pero nos falta la interface grfica. Para realizarla basta con abrir el VB y sobre el formulario que aparece al abrirlo, introducir una etiqueta, (Label) que llevar el nombre por defecto de Label1. Solo nos queda pensar donde introducimos el cdigo anterior. Podemos introducir un botn de comando (Command Button) que saldr con el nombre por defecto de Command1. Haga doble click sobre el botn. Aparecer el procedimiento Click. Este procedimiento es el que se realiza cuando hacemos click sobre ese botn. Escriba en ese procedimiento este cdigo. Private Sub Command1_Click() ' Esta lnea sale automticamente For N=65 To 90 Label1.caption = Chr ( N ) Label1.RefreshN ' Refresca la etiqueta
Visual Basic Gua del aprendiz Sena Captulo 2 Pgina 5

X=0 Do While X < 1000 X=X+1 Loop Next N End Sub

' Bucle de temporizacin (*)

' Termina el bucle de temporizacin ' Esta lnea sale automticamente

Hemos puesto nuestra primera piedra en Visual Basic. Este ejemplo es muy sencillo. Visual Basic es tan sencillo como este ejemplo. (*) Las temporizaciones no se hacen realmente as. El ejemplo anterior no deja de ser una forma sencilla de detener el programa, para que en los comienzos de su carrera como programador pueda ver el contenido de una etiqueta. Si lo hiciera de esta forma, su ordenador estara detenido realizando una funcin bastante triste, contar hasta 1000 para luego continuar el programa. Y lo que es peor, en un ordenador a 300 MHz. Tardara menos tiempo que en uno a 66. Esta misma funcin puede hacerla con Sleep que la ver mas adelante, que es la forma limpia y elegante de hacer una temporizacin

Formas de salir de un bucle


Para salir de un bucle, podemos esperar a que se complete, bien porque se ha cumplido la condicin (Bucles por condicin) o a que se haya llegado al final de la cuenta (Bucles por contador). Pero puede ocurrir que interese salir del bucle sin haber terminado la ejecucin total del mismo, por ejemplo, porque ya hemos encontrado lo que estabamos buscando, y sera una prdida de tiempo seguir ejecutando el bucle cuando ya hemos obtenido lo que buscamos. Para ello, basta con ejecutar la sentencia Exit Do (Cuando hemos comenzado el bucle con Do Until o Do While, o con Exit For cuando lo hemos comenzado con For ... To Ejemplos En el siguiente ejemplo pretendemos parar el programa cierto tiempo, a la espera que otro equipo se conecte a travs del puerto serie. (Cuando se conecte, el control MSComm1 detectar la seal DSR que le enva el otro equipo y deberemos salir inmediatamente del bucle para, por ejemplo, atender a ese puerto serie) Contador = 0 Do While Contador < 1000 Contador = Contador + 1 DoEvents If MSComm1.DSRHolding = True Then Exit Do Sleep (1000) Loop Aqu comenzamos a atender al puerto serie En el siguiente ejemplo, deseamos transmitir por el puerto serie una serie de nmeros, del 1 al 1000, pero siempre y cuando que el equipo que est al otro lado de la lnea serie est a la escucha (Condicin MSComm1.DSRHolding = True) Si se desconecta ese equipo, y la condicin pasa de True a False, deseamos salir del bucle: For I = 1 To 1000 If MSComm1.DSRHolding = False Then Exit Do MSComm1.Output = Str(I) Next I
Visual Basic Gua del aprendiz Sena Captulo 2 Pgina 6

No se preocupe que no entienda esto del MSComm. Lo entender perfectamente unos captulos mas adelante. Lo importante es que entienda la idea de salir de un bucle por la va rpida.

Funcin DoEvents
Si hablameos de bucles, necesariamente debemos hablar de la funcin DoEvents. Y es as por la misma razn que cada vez que ponemos un bucle, deberamos poner dentro de ese bucle la palabra mgica DoEvents. Imagnese que Visual Basic est ejecutando este cdigo: Do While Valor < 100 Valor = valor + 1 If Valor = 90 then Valor =1 Loop Observar que la variable Valor nunca podr llegar a tener el valor 100, puesto que cada vez que llega a 90 le ponemos de nuevo el valor 0. El programa no va a salir nunca del bucle, pero adems no podr atender a otros eventos que se produzcan en el ordenador (por ejemplo la pulsacin de una tecla) ya que el microprocesador est atendiendo solamente a ese bucle. Si lo est ejecutando desde el propio entorno de Visual Basic, deber parar la ejecucin mediante las teclas Ctrl Pausa. No podr pararlo mediante el botn Terminar de la barra de herramientas de VB. En un programa compilado posiblemente tenga que reiniciar el equipo mediante Alt Ctrl Sup, llevndose por delante el resto de los programas que se estn ejecutando en ese momento en su PC. No es difcil cometer este error involuntariamente. Esto es lo que se llama un bucle infinito. Para que no suceda, o al menos, que si nuestro programa entra en un bucle infinito se pueda salir de una forma no tan agresiva, hay que introducir dentro del bucle la instruccin DoEvents. Cuando VB encuentra esta funcin el control del microprocesador al sistema operativo, y si hay alguna operacin en espera (la pulsacin de una tecla, por ejemplo) la ejecuta y posteriormente vuelve a ejecutar el bucle. De esta forma, podemos salvar al menos los datos de las otras aplicaciones que se estn ejecutando al mismo tiempo. El bucle tomara esta forma: Do While Valor < 100 Valor = valor + 1 If Valor = 90 then Valor =1 DoEvents Loop

Salir de un procedimiento antes de terminar su ejecucin


Y ya que explicamos como se sale de un bucle por la va rpida, veamos como salir de un procedimiento usando tambin esa va rpida. Para salir de un procedimiento basta con ejecutar la sentencia Exit Sub. En el ejemplo siguiente, usamos el botn BotonLeerNombre para introducir el dato Nombre en una base de datos. Pero ese campo puede tener como mximo, 20 caracteres. Si el usuario ha introducido mas de 20 caracteres, debemos salir del procedimiento donde se introduce ese dato sin ejecutarlo de forma ntegra:

Visual Basic Gua del aprendiz Sena

Captulo 2

Pgina 7

Private Sub BotonLeerNonbre_Click() Mivariable = Text1.Text If Len(Mivariable) > 20 Then MsgBox "El Campo Nombre debe tener como mximo 20 caracteres" Text1.Text = "" Exit Sub Con esta instruccin saldramos de este procedimiento Else 'Aqui vendran las lineas de instrucciones donde trataramos 'el contenido de Text1, si tuviese menos de 20 caracteres End If End Sub

NOTA. Los ejemplos anteriores sirven solamente de ilustracin para explicar el cdigo que estamos estudiando. No pretenda ver una forma mejor de realizar la misma funcin, que seguro que existe.

Visual Basic Gua del aprendiz Sena

Captulo 2

Pgina 8

You might also like