Manual Visual Basic 6 - Leccion 06 Español

download Manual Visual Basic 6 - Leccion 06 Español

of 15

Transcript of Manual Visual Basic 6 - Leccion 06 Español

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    1/15

    Curso de Visual Basic 6.0 - Leccin 1 Area Interactiva - www.areaint.com

    Pg. 70WWW.AREAINT.C

    OM

    LECCIN 6En esta leccin vamos a familiarizarnos con las estructuras de repeticin, las cuales nos

    sirven para realizar una misma instruccin un nmero determinado de veces o indeterminadodependiendo de una condicin.

    Introduccin a las estructuras de repeticin

    El nmero de veces que se repetir la instruccin o instrucciones puede depen-der de un contador o de una condicin.

    En esta leccin vamos a ver los dos tipos de bucles: con contador o con condi-cin.

    For... Next

    Esta es una estructura de repeticin o bucle, la cual depende de un contador quenos controla el nmero de veces que se deber repetir una o varias instrucciones.

    En esta estructura siempre deberemos especificar la variable (contador), unvalor inicial y un valor final. Normalmente el contador incrementar de uno en uno ano ser que nosotros indiquemos lo contrario.

    La estructura del bucle utilizando un contador es la siguiente:

    For Contador = Inicio To Fin [StepIncremento][Instrucciones]

    Next Contador

    Vamos a explicar las diferentes partes de esta estructura:

    Contador: Aqu es donde nosotros escribiremos el nombre de la variable quequeremos utilizar como contador.

    Inicio: Valor inicial de la variable.

    Fin: Valor final de la variable. Cuando la variable llegue a este valor, el bucle nose volver a realizar.

    Step: Esta instruccin es opcional. Si no la ponemos el contador ir incrementandode uno en uno. Si especificamos un nmero detrs de Step hacemos que nuestrocontador aumente un nmero determinado de pasos.

    Incremento: Nmero que marcar los pasos que debe aumentar el contador.Este nmero puede ser tanto positivo como negativo. Eso s, siempre deberemos tenercuidado con los valores iniciales y finales para que no se produzca ningn tipo de error.No podemos hacer, por ejemplo, que el valor inicial sea 10 y el final 1 siempre y cuandono pongamos como step un valor negativo.

    Instrucciones: Aqu escribiremos la o las instrucciones que queremos que serepitan.

    Next Contador: Lnea que indica que se termina el bucle y hace que aumenteel contador segn el valor que nos indique step en caso de tenerlo.

    .Prctica 1

    Vamos a realizar una simple aplicacin en el que utilizaremos una estructura derepeticin utilizando un contador.

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    2/15

    Curso de Visual Basic 6.0 - Leccin 3 Area Interactiva - www.areaint.com

    Pg. 71WWW.AREAINT.C

    OM

    La aplicacin consistir en una simulacin de una tirada de un dado.

    Te iremos especificando que tipo de objetos debers aadir en nuestro formula-rio y algunas de las propiedades que debers cambiar. El aspecto de los objetos y susituacin corren por tu cuenta. Puedes poner tantos objetos Label como quieras paraaclarar para que sirven cada uno de los elementos insertados en el formulario.

    1. Sita en un formulario nuevo un ListBoxal que debers poner como (Nombre):Dado.

    Aqu ser donde el ordenador nos muestre las diferentes tiradas que realizamos.

    2. Coloca un CommandBotton, que tendr como (Nombre) yCaption: Tirada.

    Al pulsar este botn se realizarn las diferentes tiradas.

    3. Coloca un TextBoxal que pondremos como (Nombre): NumTiradas. Borra elcontenido que aparece por defecto dentro de este objeto.

    Aqu ser donde indiquemos cuantas tiradas queremos realizar.

    Una vez colocados los objetos vamos a pensar en el cdigo.

    Nosotros en esta prctica queremos que se realicen tantas tiradas de dado comonos indique el usuario dentro del TextBox. Para esto nos interesara crear una es-tructura de repeticin que debera empezar en 1 y terminar en el nmero que indicael usuario. Los incrementos que sufrir el contador deber ser de uno en uno, por loque la parte del step no la especificaremos.

    4. Haz doble clic dentro del botn y escribe el siguiente cdigo.

    For Contador = 1 To NumTiradas.TextDado.AddItem (Int(6*Rnd)+1)

    Next Contador

    En la primera lnea de este pequeo cdigo, que ms adelante depuraremos,hemos iniciado el contador (nueva variable) a 1. No hace falta que definamos la varia-ble. Al no definirla esta es de tipo Variant1.

    En esta primera lnea tambin definimos en que valor queremos que termine elbucle. Este valor ser el valor que introduzca el usuario dentro del TextBox.

    Generar valores aleatorios

    En la segunda lnea, Dado.AddItem (Int(6*Rnd)+1)), hacemos que VisualBasic nos busque un valor aleatorio. Esto lo conseguimos con la instruccin Rnd. No-sotros como queremos conseguir un nmero aleatorio dado un intervalo, del 1 al 6(valores que tiene un dado comn), necesitamos utilizar una estructura determinada:

    Int ([Valor superior] [Valor inferior] + 1) * Rnd + [Valor inferior]

    Valor inferior: nos indica el valor mnimo que tiene el intervalo.

    Valor superior: nos indica el valor mximo del intervalo.

    En nuestro ejemplo esto quedara de la siguiente manera. Recuerda que quere-mos valores enteros, por eso utilizamos la instruccin Int(Valor), entre el 1 y el 6.

    Int(6-1+1*Rnd)+1 Resolviendo las operaciones la instruccin quedara de la

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    3/15

    Curso de Visual Basic 6.0 - Leccin 1 Area Interactiva - www.areaint.com

    Pg. 72WWW.AREAINT.C

    OM

    siguiente forma Int(6*Rnd)+1. Con esto conseguiramos nmeros aleatorios entre el1 y el 6, ambos inclusive.

    Pongamos otro ejemplo: imaginemos que ahora queremos obtener valoresaleatorios entre el 10 y el 20. La instruccin quedara de la siguiente forma. Int(20-10+1*Rnd)+10 resolviendo las operaciones, la instruccin quedara as:Int(11*rnd)+10.

    Aadir valores a una lista

    Para aadir elementos a una lista deberemos utilizar la instruccin AddItem.Cada vez que se pasa por esta lnea se inserta un nuevo elemento ocupando el puestode ltimo ndice + 1. Recuerda que el primer elemento ocupara la posicin con ndi-ce 0. La estructura de esta instruccin es la siguiente:

    [Nombre de la lista].AddItem [Cadena a aadir]

    Nombre de la lista: es el nombre que le hemos puesto a la lista donde quere-mos que se aadan los diferentes elementos.

    Cadena a aadir: es el valor, cadena, variable... que queremos aadir a nues-tra lista.

    Observa que esta instruccin, aunque se trate de una asignacin, no utiliza elsigno igual.

    En nuestra aplicacin queremos aadir el valor aleatorio obtenido anteriormen-te. As que la lnea de cdigo quedar de la siguiente manera: Dado.AddItem(Int(6*Rnd)+1)

    Observaciones con nmeros aleatorios

    5. Inicia una ejecucin de prueba.

    6. Indica que quieres realizar5 tiradas.

    7. Pulsa sobre el botn: Tirada.

    8. Observa con detenimiento la secuencia de nmeros que han aparecido en la lista.

    9. Detn la ejecucin del programa.

    10. Vuelve ha ejecutar el programa.

    11. Indica que quieres realizar nuevamente 5 tiradas.

    12. Pulsa sobre el botn: Tirada.

    13. Observa la secuencia de tiradas de la lista.

    Si recuerdas la primera secuencia que ha aparecido en nuestra primera ejecu-cin y la comparas con la actual, podrs ver que es exactamente igual. Esto es debidoa que, mientras no indiquemos lo contrario, la secuencia de nmeros aleatorios obteni-dos con Rnd siempre ser la misma. Como podrs ver esto no nos interesa en la granmayora de casos, con lo que utilizaremos una nueva instruccin que nos permitirobtener valores completamente aleatorios.

    14. Detn la ejecucin del programa.

    Inicio de valores aleatorios

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    4/15

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    5/15

    Curso de Visual Basic 6.0 - Leccin 1 Area Interactiva - www.areaint.com

    Pg. 74WWW.AREAINT.C

    OM

    borrar el contenido de la lista y despus se aadirn los elementos nuevos. Cada vezque se borran los elementos de la lista, el ndice de la lista vuelve a tener como valor0.

    Filtrar la entrada de valores

    En este apartado vamos ha hacer que el usuario solo pueda poner nmeros en el

    nmero de tiradas que quiere realizar, y no pueda introducir ningn tipo de carcterms. Esto es una medida de depuracin del programa, ya que de esta forma evitamosque la aplicacin aborte al producirse un error.

    Veamos que ocurre si introducimos una letra en el nmero de tiradas deseadas.

    . Practica 2

    1. Ejecuta la aplicacin.

    2. Escribe una letra en la casilla para indicar el nmero de tiradas que deseas realizar.

    3. Pulsa el botn: Tirada.

    Observa como te aparece una ventana indicando que se ha producido un error.El mensaje de error es: No coinciden los tipos. Esto quiere decir que Visual Basic noha podido utilizar lo que nosotros hemos escrito en el interior del nmero de tiradascomo contador para nuestro bucle. Visual Basic necesita un nmero y no una letra.

    4. Pulsa el botn Terminar, que aparece en la pantalla de error.

    De esta forma podemos volver a la edicin del cdigo.

    Esta ventana de error es la que tendremos que evitar en muchos casos, para que

    el usuario no se encuentre con la aplicacin colgada.

    5. Haz doble clic sobre elTextBox.

    Observa como el evento que se ha abierto ha sido Change. El cdigo que escri-bimos dentro de este evento se ejecutar en el momento en el que se produce uncambio dentro del TextBox.

    6. Abre la lista desplegable de los eventos de este objeto y selecciona KeyPress.

    Fjate como ha aparecido un nuevo procedimiento: Private SubNumTiradas_KeyPress(KeyAscii As Integer). La parte que se encuentra dentro delos parntesis, devuelve al procedimiento un valor KeyAscii siendo este un valor nu-mrico que representa la tecla que se ha pulsado. Esta tabla tiene 256 elementosnumerados del 0 al 255, y cada uno de ellos representa un carcter diferente.

    7. Inserta estas lneas de cdigo dentro de KeyPress.

    If (KeyAscii < 48 Or KeyAscii > 57) ThenIf (KeyAscii 8) Then KeyAscii = 0

    End If

    Con estas lneas de cdigo, conseguiremos que el usuario en el momento depulsar alguna tecla que no sea un nmero no se escriba dentro del TextBox.

    8. Realiza una ejecucin de prueba e intentar escribir alguna letra.

    Observa como no se escribe nada en el interior de este objeto.

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    6/15

    Curso de Visual Basic 6.0 - Leccin 3 Area Interactiva - www.areaint.com

    Pg. 75WWW.AREAINT.C

    OM

    9. Escribe cualquier valor numrico y pulsa Tirada.

    10. Detn la ejecucin del programa.

    Do... Loop

    Ahora vamos a ver un tipo de estructura de repeticin que depende de unacondicin. Las instrucciones que hay dentro del bucle se repiten mientras se cumplala condicin, mientras la condicin sea Verdadera.

    Tenemos dos tipos de estructuras Do...Loop, una en la que se mira la condicinantes de realizar ninguna instruccin y otra que se mira despus de realizar, al menos,una vez las instrucciones que tenemos dentro del bucle.

    Vamos a ver las dos estructuras y despus pasaremos a comentar sus diferen-cias:

    Do While [Condicin] [Instrucciones] Loop Do [Instrucciones]Loop While [Condicin]

    Condicin: lugar reservado para colocar la pregunta que queremos realizarpara ver si es verdadero o falso.

    Instrucciones: lneas de cdigo que se ejecutan mientras que la condicin seaverdadera.

    En la primera estructura de repeticin lo primero que se mira es la condicin, siesta se cumple pasamos a realizar las instrucciones que tenemos en el interior delbucle, si no se cumple nos saltamos todas las instrucciones hasta llegar al Loop quenos indica el final de dicho bucle.

    La segunda estructura de repeticin es diferente, primero entramos en el bucley realizamos todas las instrucciones una vez, despus miramos la condicin, si esta secumple volvemos a realizar las instrucciones que tenemos dentro del bucle, por locontrario si esta no se cumple salimos del bucle.

    Es difcil explicar en que momentos se necesitar una u otra instruccin ya queesto depender de cada caso y nada mejor que aprenderlo sobre la marcha.

    Existen dos estructuras a las que hemos visto antes pero con la diferencia que elbucle se repetir mientras no se cumpla la condicin, mientras la condicin seaFalsa.

    La estructura sera la siguiente:Do Until [Condicin] [Instrucciones] Loop Do [Instrucciones]Loop Until [Condicin]

    Observa la diferencia de estas dos estructuras con las vistas anteriormente.

    La nica diferencia es que en las primeras utilizamos la palabra, While y enestas ltimas Until, por lo dems todo el funcionamiento es exactamente igual.

    Bucles anidados

    En este apartado vamos a ver como podemos anidar, poner dentro de otro,diferentes estructuras de repeticin.

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    7/15

    Curso de Visual Basic 6.0 - Leccin 1 Area Interactiva - www.areaint.com

    Pg. 76WWW.AREAINT.C

    OM

    Para esto vamos a realizar una prctica en la que intentaremos ordenar unatabla de elementos que inicialmente estn desordenados. Para ordenar una tabla exis-ten multitud de mtodos diferentes. Algunos de ellos muy simples y poco eficaces,otros son complejos y con un alto grado de eficacia. La dificultad del sistema de orde-nacin la escogeremos segn la cantidad de elementos que deseamos ordenar.

    En nuestro caso realizaremos una aplicacin que nos ordenar una pequea

    tabla que contiene datos aleatorios. Utilizaremos el mtodo de ordenacin ms sencilloy menos eficaz. Este mtodo, llamado Mtodo de la burbuja, es ideal para tablas conpocos datos.

    Mtodo de la burbuja

    El mtodo de la burbuja se basa en el intercambio de elementos de dos en dos.Si nosotros queremos ordenar la tabla ascendentemente, el intercambio de los ele-mentos se produce cuando el primero de ellos es mayor que el segundo. Repitiendoeste proceso por lo largo de la tabla conseguimos que el elemento ms grande pase aestar en el ltimo lugar de la tabla. El elemento sube por la tabla hasta que ocupa laposicin ms alta. De ah viene el nombre de ordenacin de la burbuja, el elementosube como si se tratase de una burbuja dentro de un recipiente.

    Los pasos que se siguen exactamente en esta ordenacin son los siguientes:

    1. Se compara el primer elemento con el segundo de la tabla. Si estn desorde-nados (el primero es ms grande que el segundo, en el caso de la ordenacin ascen-dente) se intercambian. Luego comparamos el segundo con el tercero, si es necesariolos intercambiamos. Continuamos con los intercambios hasta que comparamos el pe-nltimo con el ltimo.

    2. Como segundo paso, volvemos a repetir el primero pero esta vez hasta llegara comparar el antepenltimo con el penltimo, ya que el ltimo elemento ya estordenado gracias al primer paso.

    3. Volvemos a repetir exactamente lo mismo que en el paso uno, pero esta vezcon un elemento menos, ya que los dos ltimos ya estn ordenados.

    Este mtodo termina en el momento en el que hemos hecho tantas pasadascomo elementos menos 1 hay en la lista. Realizamos una pasada menos de la canti-dad de elementos que hay en la tabla, ya que si todos los elementos de la tabla se hanido ordenando segn hemos pasado, como es lgico este ltimo elemento a ordenar yaestar ordenado.

    . Prctica 3

    Vamos a realizar esta aplicacin. Como en todas las prcticas sigue los pasosque te indicamos.

    Insertar los elementos

    1. Abre un proyecto nuevo.

    2. Inserta un CommandButton al que le pondrs como (Nombre): Nueva. Cambiasu Caption y escribe Nueva.

    Este botn servir para borrar la tabla que tengamos en pantalla y crear otra.

    Para poder visualizar las tablas que vallamos creando utilizaremos un ListBox.

    3. Inserta un ListBox. Cambia su tamao hasta llegar aproximadamente a 855 x3180.

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    8/15

    Curso de Visual Basic 6.0 - Leccin 3 Area Interactiva - www.areaint.com

    Pg. 77WWW.AREAINT.C

    OM

    4. Cambia el(Nombre) de este ListBoxporLista.

    No introduzcas nada en su interior.

    5. Inserta otro CommandButton. A este llmale Ordenary ponle como Caption:Ordenar.

    Al pulsar este botn realizaremos la ordenacin de la tabla y la visualizaremosen nuestro ListBox.

    Recuerda que puedes cambiar todas las propiedades que desees de los objetosinsertados en este formulario.

    Creacin de la tabla

    Vamos ha definir la tabla en la que guardaremos todos los valores.

    Vamos a pensar como crear esta aplicacin para que sea fcil de modificar en elmomento en el que deseemos cambiar el nmero de elementos que componen la tabla.Para ello vamos a crear una constante que utilizaremos a lo largo del programa. En elmomento que deseemos utilizar una tabla con ms o menos elementos y que el progra-ma funcione exactamente igual, solo deberemos cambiar el valor de esta constante.

    6. Accede al apartado General - Declaraciones de nuestra pgina de cdigo y escribelo siguiente:

    Const Elementos = 12

    Con esto crearemos una constante llamada Elementos que podremos consultara lo largo de todo nuestro programa.

    Vamos a crear en el mismo apartado una tabla que tenga el nmero de elemen-tos que marca la constante anteriormente creada. Adems esta tabla, para facilitar lacomprensin de nuestro cdigo, pondremos como primer elemento el nmero 1 y comoltimo Elemento.

    7. Escribe la siguiente lnea de cdigo a continuacin de la que ya tenamos:

    Dim Tabla(1 To Elementos) As Integer

    Observa la declaracin del tamao de la tabla, desde el elemento nmero 1 alelemento Elementos.

    La tabla la hemos definido como Integer (nmeros enteros).

    Iniciar proyecto

    Vamos a escribir el cdigo necesario para que al iniciar el proyecto nos aparezcauna tabla de nmero aleatorios dentro de nuestra tabla.

    8. Pulsa un clic en el fondo del escritorio.

    Seguidamente te aparecer la ventana de cdigo. Observa el evento que tene-mos abierto. Private Sub Form_Load() Esto nos indica que todo lo que escribamosdentro de este evento se realizar en el momento en el que carguemos el formulario.

    9. Copia las siguientes instrucciones dentro de dicho evento.

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    9/15

    Curso de Visual Basic 6.0 - Leccin 1 Area Interactiva - www.areaint.com

    Pg. 78WWW.AREAINT.C

    OM

    Private Sub Form_Load()RandomizeFor Contador = 1 To Elementos

    Tabla(Contador) = Int((9 * Rnd) + 1)Lista.AddItem Tabla(Contador)

    Next ContadorEnd Sub

    Observa que en la primera lnea, dentro del evento, hemos escrito la instruccinRandomize para iniciar la funcin de nmeros aleatorios.

    En la segunda lnea hemos iniciado un bucle que se repetir hasta que Conta-dor llegue hasta el nmero de elementos que hemos definido en Elementos. Observacomo la variable Contador no la hemos definido anteriormente.

    Dentro de este bucle se realizar el relleno de los elementos de nuestra Tablacon nmeros aleatorios generados mediante la instruccin Int((9 * Rnd) + 1). Obser-va que para movernos por la tabla utilizamos como ndice, nuestro Contador.

    A la vez que llenamos la tabla vamos aadiendo a nuestra Lista los elementosque se acaban de crear. De esta manera a la vez que los creamos los pasamos a la lista,as no tenemos que volver a realizar otra pasada por la tabla.

    10. Cierra la ventana de cdigo.

    11. Haz doble clic en el botn Nueva.

    Como ya hemos dicho, en el momento en el que pulsemos este botn borrare-mos lo que haya en la Lista e introduciremos una nueva tabla.

    12. Sube por el cdigo de la aplicacin hasta llegar al evento que hemos escrito ante-riormente.

    Copiar y pegar

    13. Selecciona el contenido de dicho evento.

    Para seleccionar lneas de cdigo, simplemente debes ponerte en el margenizquierdo de la ventana de cdigo a la altura de la primera lnea de cdigo. Seguida-mente pulsa el botn izquierdo del ratn y mientras lo tienes pulsado muvete hasta laltima la ultima lnea de cdigo dentro de este procedimiento. Fjate como ha cambiadoel color del fondo del texto.

    Con el texto seleccionado:

    14. Selecciona la opcin Copiardel men Edicin.

    15. Sita el cursor en el interior del evento del botn Nueva.

    16. Selecciona la opcin Pegardel men Edicin.

    El cdigo se ha copiado.

    Vamos ha realizar unas pequeas modificaciones.

    17. Selecciona la primera lnea de cdigo y brrala.

    18. Escribe lo siguiente: Lista.Clear

    Recuerda que esta instruccin sirve para borrar el contenido de la Lista para as

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    10/15

    Curso de Visual Basic 6.0 - Leccin 3 Area Interactiva - www.areaint.com

    Pg. 79WWW.AREAINT.C

    OM

    poder poner insertar otra lista nueva.

    19. Realiza una ejecucin de prueba para ver el funcionamiento de los dos eventosprogramados hasta el momento.

    20. Detn la ejecucin.

    OrdenacinAhora vamos a dedicarnos a lo que es en s la ordenacin de la Tabla.

    21. Haz doble clic sobre el botn Ordenar.

    22. Escribe dentro de este evento las siguientes instrucciones.

    1 Private Sub Ordenar_Click()2 I = 13 Do4 For J = 1 To Elementos - I

    5 If Tabla(J) >= Tabla(J + 1) Then6 Cambio = Tabla(J)7 Tabla(J) = Tabla(J + 1)8 Tabla(J + 1) = Cambio9 End If 10 Next J11 I = I + 112 Loop Until I > (Elementos - 1)13 Lista.Clear14 For Contador = 1 To Elementos15 Lista.AddItem Tabla(Contador)16 Next Contador17 End Sub

    Los nmeros que aparecen en cada lnea no debes copiarlos, los utilizaremospara facilitar la explicacin del funcionamiento del cdigo.

    En la lnea 2 iniciamos una variable llamada I a 1. Esta variable nos controlar,dentro de un bucle que crearemos en lneas consecutivas, las veces que tenemos querecorrer la tabla, para que est completamente ordenada. El nmero de veces ser: elnmero de elementos de la tabla menos 1.

    En la lnea 3 escribimos la primera lnea de nuestra estructura Do...Loop quetermina en la 12. Utilizamos una estructura Loop Until ya que deseamos que se repitaeste bucle mientrasnose cumpla la condicin. Recuerda que en este tipo de estruc-

    turas la condicin est en la ltima lnea del bucle.

    En la lnea 4 iniciamos otro bucle, en este caso un For... Next ya que nosinteresa que se repitan unas serie de instrucciones un nmero de veces determinado.En esta lnea definimos una nueva variable llamada J con valor 1. Esta variable es laencargada de controlar el bucle. Este bucle se repetir hasta que J llegue al valor quese le indica despus del To. En nuestro caso cada vez que se ejecute este bucle serepetir hasta un nmero diferente, ya que deberemos llegar hasta Elementos I.Vamos a explicarlo con un ejemplo: imaginemos una tabla con 5 elementos, el orde-nador la primera vez que entre en el bucle principal la variable I tendr como valor 1.Entonces el segundo bucle deber repetirse hasta que J llegue a 5 menos el valor de Ique es 1, por lo tanto 4. As nos aseguramos que al comparar el elemento que nosmarca J con el siguiente, en la lnea 5 no nos pasemos del ndice de la tabla producin-dose un desbordamiento.

    En la lnea 5 realizamos la comparacin del elemento de la tabla cuyo ndice es

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    11/15

    Curso de Visual Basic 6.0 - Leccin 1 Area Interactiva - www.areaint.com

    Pg. 80WWW.AREAINT.C

    OM

    J con el siguiente. Si resulta que Tabla(J) es ms grande (>) que Tabla(J+1) reali-zamos el cambio de los valores, haciendo pasar el valor de Tabla(J+1) a Tabla(J).Este cambio lo efectuamos de la siguiente manera en las lneas 6, 7 y 8.

    En la lnea 6 acumulamos el valor de Tabla(J) en una nueva variable que utili-zaremos de puente entre las dos posiciones de la tabla. A esta variable puente lallamaremos Cambio.

    En la lnea 7 pasamos el contenido de Tabla(J+1) a Tabla(J) con lo que escri-bimos encima del valor que esta tena, pero no importa ya que este valor est copiadoen la variable Cambio.

    En la lnea 8 completamos el cambio pasando el contenido de la variable Cam-bio a Tabla(J+1), machacando el valor antiguo que ya est copiado en Tabla(J).

    En la lnea 12 termina nuestro Do... Loop Until.

    Cuando se ejecuta la lnea 13 la tabla ya debe estar completamente ordenada,con lo que podemos pasar a visualizarla en nuestro ListBox.

    Para que no se mezclen la tabla ordenada con la desordenada, primero es prefe-rible borrar la lista, para ello utilizamos la instruccin Lista.Clear.

    Para pasar el contenido de la tabla a la lista utilizamos un nuevo bucle (lnea 14y 16), utilizando la variable Contador que vuelve a tomar como primer valor 1 y comoltimo el nmero de elementos de la tabla definido por la constante definida en unprincipio.

    Al pasar por la lnea 15 el contenido de la tabla en la posicin que nos indica elcontador pasa a aadirse a la lista. De esta forma volvemos a ver el contenido de lalista que en este caso ya est completamente ordenada.

    23. Realiza una ejecucin de prueba.

    24. Observa los valores de la lista.

    25. Pulsa en el botn Ordenar.

    Observa como en un breve espacio de tiempo vuelve a aparecer los mismosvalores, pero esta vez completamente ordenados.

    26. Pulsa en el botn Nueva.

    27. Vuelve a ordenar la lista.

    28. Detn la ejecucin del programa.

    29. Vuelve al modo diseo.

    30. Accede a la lnea en la que se le asigna un valor a la constante Elementos.

    31. Modifica este valor, poniendo 5.

    32. Realiza otra ejecucin de prueba.

    Observa como en esta ocasin solo aparecen 5 elementos en la lista. Esto a sidogracias a que en todo nuestro cdigo utilizbamos una constante que controlaba el

    nmero de elementos que desebamos que aparecieran en nuestra tabla. Mira cuantaslneas de cdigo hubisemos tenido que cambiar si no hubisemos utilizado una cons-tante.

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    12/15

    Curso de Visual Basic 6.0 - Leccin 3 Area Interactiva - www.areaint.com

    Pg. 81WWW.AREAINT.C

    OM

    33. Detn la ejecucin.

    34. Graba el formulario y el proyecto.

    Antes de seguir adelante vamos a aprovechar el ejemplo que acabamos de rea-lizar para explicar un elemento que podemos utilizar en muchas ocasiones el cual nos

    facilitar un poco la tarea de programar.

    Procedimientos

    Si observamos el ejemplo que acabamos de realizar podremos observar comohay unas cuantas lneas que se repiten en dos eventos diferentes.

    For Contador = 1 To ElementosTabla(Contador) = Int((9 * Rnd) + 1)Lista.AddItem Tabla(Contador)

    Next Contador

    Estas lneas estn dentro de los eventos: Form_Load() y Nueva_Click().

    En esta ocasin no ocurre no es importante que estas lneas se repitan ya queson slo 4. Pero podemos tener otras aplicaciones en las que el nmero de lneas que serepitan puedan ser muchas ms, con lo que el nmero total de lneas de cdigo se veraincrementado haciendo ms difcil la localizacin de un posible error.

    Vamos a ver una forma de poder compartir estas lneas de cdigo y utilizarlas enel momento en el que deseemos.

    35. Selecciona la opcin:Agregar procedimiento dentro de la opcin Herramientas.

    Seguidamente te aparecer una ventana como la siguiente:

    De esta nueva ventana vamos a explicar las opciones que nos interesa.

    Dentro del apartado Alcance tenemos dos posibles opciones: Pblico o Priva-do. La primera de ellas se utilizara en el momento que deseamos crear un procedi-miento que se pueda mirar desde cualquier formulario que tuviera una aplicacin. Mien-

    tras que la segunda opcin la utilizaramos en el momento en el que queremos que elprocedimiento slo pueda ser consultado por el formulario en el que nos encontramos.

    Dentro del apartado Tipo tenemos 4 opciones de las cuales slo nos interesan

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    13/15

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    14/15

    Curso de Visual Basic 6.0 - Leccin 3 Area Interactiva - www.areaint.com

    Pg. 83WWW.AREAINT.C

    OM

    anteriormente podremos ver donde deberemos hacer la llamada a Crear.

    Private Sub Form_Load()RandomizeCrear

    End Sub

    Concatenacin de texto

    En este apartado vamos a ver una operador que nos permite concatenar ele-mentos. La concatenacin es la unin de dos o ms elementos que estn separados,para formar uno nuevo.

    Vamos a ver este operador mediante un ejemplo muy simple.

    . Practica 4

    1. Crea un nuevo formulario.

    2. Inserta dos TextBox. Elimina el contenido y deja los nombres que tienen por defec-to.

    3. Inserta un Label. Elimina el contenido y ponle como nombre: Union.

    4. Inserta un CommandButton. Pon el texto que quieras. No hace falta que cambiessu nombre.

    Con este pequeo ejemplo queremos que al pulsar el botn, aparezca en elLabel de nuestro formulario la concatenacin del contenido de los dos TextBox.

    5. Pulsa doble clic en elbotn.

    6. Escribe las siguientes lneas de cdigo:

    Private Sub Command1_Click()Union.Caption = Text1.Text & Text2.Text

    End Sub

    Recuerda que siempre que se realiza una asignacin, pasa el contenido de laderecha del igual a la izquierda de este.

    Para unir el contenido de los dos objetos insertados utilizamos el operador &.

    7. Inicia una ejecucin de prueba.

    8. Escribe lo que quieras dentro de los dos TextBox.

    9. Pulsa elBotn.

    Observa como el contenido de los dos TextBox pasa dentro del Label.

    10. Cambia el contenido de los dos TextBox.

    11. Pulsa nuevamente elBotn que hemos insertado en el formulario.

  • 8/8/2019 Manual Visual Basic 6 - Leccion 06 Espaol

    15/15

    Curso de Visual Basic 6.0 - Leccin 1 Area Interactiva - www.areaint.com

    Pg. 84WWW.AREAINT.C

    OM

    Nuevamente vuelven ha aparecer los dos TextBox unidos dentro de nuestroLabel.

    Qu tendramos que hacer para que entre ellos apareciera un espacio en blan-co?

    La respuesta es muy sencilla, tendramos que concatenar entre ellos un espacioen blanco.

    12. Modifica la lnea de cdigo de la siguiente manera:

    Private Sub Command1_Click()Union.Caption = Text1.Text & & Text2.Text

    End Sub

    Observa detenidamente la lnea donde se produce la concatenacin de los dife-rentes objetos. Primero concatenamos el contenido de Text1, despus un espacio enblanco y por ltimo el contenido de Text2.

    13. Realiza una ejecucin de prueba.

    14. Detn la ejecucin una vez hayas introducido diferentes textos en las correspon-dientes casillas.

    Si nosotros quisiramos concatenar las casilla de texto separadas entre s me-diante una conjuncin y deberamos hacerlo de la siguiente manera:

    15. Modifica las lneas de cdigo para que queden as:

    Private Sub Command1_Click()Union.Caption = Text1.Text & y & Text2.Text

    End Sub

    Observa que el texto que delante y detrs del texto que deseamos aparezcaentre los elementos a concatenar hemos dejado un espacio, esto lo hacemos para queno salga junto a los elementos concatenados y la conjuncin y. Observa igualmenteque este texto est entre comillas.

    16. Realiza una ejecucin de prueba.

    17. Detn la ejecucin.

    18. Modifica el cdigo de nuestro ejemplo para cambiar el orden de la concatenacin,

    escribiendo un punto posterior, el texto concatenado entre comillas, etc. Realiza todoslos cambios que se te ocurran

    19. Sal de Visual Basicsin guardar los cambios.

    Recomendamos repasar con profundidad las estructuras de decisin (leccinanterior) y las estructuras de repeticin (leccin actual).

    Fin de la leccin 6

    1 Variable en la que podemos almacenar cualquier tipo de dato.