Está en la página 1de 8

Ejercicios de Visual Basic

Prof.: Lic. Toledo Marcelo Alejandro e-mail: mtoledo@dgrfsa.gov.ar

Arreglos
Introduccin a las Estructuras de Datos. Arreglos Unidimensionales: Vectores Vectores Estticos en VB Vectores Dinmicos en VB Ordenando un Vector

Introduccin a las Estructuras de Datos.


Una estructura de datos es una coleccin de datos que pueden ser caracterizados por su organizacin y las operaciones que se definen en ella. Los tipos de datos ms frecuentemente utilizados son: I. Datos Simples a. Estndar i. Entero ii. Real iii. Carcter iv. Lgico b. No estndar (definido por el programador) i. Subrango ii. Enumerativo II. Datos Estructurados a. Estticos i. Arreglos (array) ii. Registro iii. Archivo (fichero) iv. Cadena b. Dinmicos i. Lista (pila/cola) ii. Lista enlazada iii. rbol iv. Grafo Las estructuras de datos estticas son aquellas en las que el tamao ocupado en la memoria se define antes de que el programa se ejecute y no puede modificarse durante la corrida. Las estructuras de datos dinmicas no tienen las limitaciones y restricciones en el tamao de memoria que son propias de las estructuras estticas. Mediante el uso de un tipo de datos especfico, denominado puntero, es posible construir estructuras de datos dinmicas soportadas por la mayora de los lenguajes de programacin. Cuando un lenguaje de programacin no soporta un tipo dado de estructura de datos eventualmente puede ser simulada mediante el algoritmo apropiado. Una caracterstica importante que diferencia a los datos simples de los estructurados es que para los datos simples cada variable representa un elemento, mientras que en los datos estructurados cada un identificador (nombre) representa mltiples datos individuales, pudiendo cada una de ellos ser referenciados individualmente. 1

Ejercicios de Visual Basic

Prof.: Lic. Toledo Marcelo Alejandro e-mail: mtoledo@dgrfsa.gov.ar

Arreglos Unidimensionales: Vectores


Un arreglo es un conjunto finito y ordenado de elementos homogneos. La propiedad ordenado significa que el primer elemento, el segundo, el tercero,..., el ensimo puede ser identificado. La homogeneidad implica que todos los elementos del arreglo son datos del mismo tipo. Un vector o arreglo unidimensional consta de n elementos que pueden representarse como: A [1] A[2] A[3] ... A[i] ... A[n} Ntese que todos los elementos comparten el mismo identificador (A en este caso) mientras que el subndice identifica a cada elemento individual. Al nmero de elementos de un vector se le denomina rango del vector. Los vectores se almacenan en la memoria central del computador en un orden adyacente de posiciones de memoria sucesivas. Cada elemento de un vector se puede procesar como si fuera una variable simple que ocupa una posicin de memoria dada, de manera tal que cada elemento del vector es accesible directamente. Por ejemplo: el vector X[6] est compuesto por seis elementos. Su identificador (nombre del vector) es X y cada elemento se individualiza por su subndice. X(1) X(2) X(3) X(4) X(5) X(6) 30 33 28 30 31 29

Vectores Estticos en VB
Para poder utilizar un vector en VB primero hay que declararlo, es decir, especificar su identificador, rango y tipo. Esto puede hacerse mediante la instruccin Dim, cuya sintaxis general es: Dim identificador(rango) As tipo Ejemplos: Dim N(12) As Double Dim Monto(2 to 14) as Long Dim T(-272 to 372) as Integer Dim Nombre(100) As String

Ejercicios de Visual Basic

Prof.: Lic. Toledo Marcelo Alejandro e-mail: mtoledo@dgrfsa.gov.ar

Ejemplo 1 Implementar una aplicacin VB que lea 10 nmeros y calcule e imprima su promedio. GUI

Codificacin Bsica ------------------------------------------------------------------------------General Dim C As Integer Dim Suma As Double Dim X(10) As Double ------------------------------------------------------------------------------Private Sub txtNumero_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then C=C+1 X(C) = Val(txtNumero.Text) Suma = Suma + X(C) lblCantidad = C txtNumero.Text = "" End If If C = 10 Then lblPromedio.Caption = Str$(Suma / 10) txtNumero.Enabled = False End If End Sub

Ejercicios de Visual Basic

Prof.: Lic. Toledo Marcelo Alejandro e-mail: mtoledo@dgrfsa.gov.ar

Vectores Dinmicos en VB
Visual Basic permite cambiar el rango de un vector durante la ejecucin del programa, pero para ello debe declararse este como vector dinmico. Dim identificador( ) As tipo Ntese que se ha dejado vaco el espacio entre parntesis reservado para fijar el rango del vector. El rango del vector se puede entonces determinar y/o ajustar durante la corrida del programa utilizando la instruccin ReDim, cuya sintaxis general es: ReDim identificador(N ) As tipo Donde N es una variable numrica entera cuyo valor se ha determinado previamente.

Ejemplo 2 Implementar una aplicacin VB que lea la cantidad de nmeros a promediar y los nmeros, y calcule e imprima su promedio. GUI

Codificacin Bsica ------------------------------------------------------------------------------General Dim C As Integer Dim N As Integer Dim Suma As Double Dim X() As Double 4

Ejercicios de Visual Basic

Prof.: Lic. Toledo Marcelo Alejandro e-mail: mtoledo@dgrfsa.gov.ar

Private Sub txtCantidad_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then N = Val(txtCantidad.Text) txtNumero.Enabled = True txtCantidad.Enabled = False End If End Sub Private Sub txtNumero_KeyPress(KeyAscii As Integer) ReDim X(N) As Double If KeyAscii = 13 Then C=C+1 X(C) = Val(txtNumero.Text) Suma = Suma + X(C) lblCantidad = C txtNumero.Text = "" End If If C = N Then lblPromedio.Caption = Str$(Suma / N) txtNumero.Enabled = False End If End Sub

Ejemplo 3 Implementar una aplicacin VB que lea una lista de nmeros que termina con la palabra FIN, y calcule e imprima su promedio. GUI

Ejercicios de Visual Basic

Prof.: Lic. Toledo Marcelo Alejandro e-mail: mtoledo@dgrfsa.gov.ar

Codificacin Bsica ----------------------------------------------------------General Dim C As Integer Dim Suma As Double Dim X() As Double ----------------------------------------------------------Private Sub txtNumero_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If UCase(txtNumero.Text) = "FIN" Then lblPromedio.Caption = Str$(Suma / C) txtNumero.Enabled = False Else C=C+1 ReDim X(C) As Double X(C) = Val(txtNumero.Text) Suma = Suma + X(C) lblCantidad = C txtNumero.Text = "" End If End If End Sub

Ordenando un Vector
Muchas aplicaciones requieren que se ordenen ascendentemente o descendentemente los elementos de un vector. Existen muchos algoritmos que permiten ejecutar esta tarea, diferencindose por su complejidad y eficiencia. Uno de los algoritmos de ordenamiento de vectores ms simple (aunque no muy eficiente) es el de ordenacin por seleccin. Para ordenar ascendentemente un vector numrico el algoritmo de ordenacin por seleccin utiliza dos bucles anidados, de manera tal que se realizan recorridos sucesivos por el arreglo para localizar el elemento mayor y colocarlo en el lugar que le corresponde en la lista ordenada.

Ejercicios de Visual Basic

Prof.: Lic. Toledo Marcelo Alejandro e-mail: mtoledo@dgrfsa.gov.ar

GUI

Codificacin Bsica ----------------------------------------------------------General Dim i As Integer Dim j As Integer Dim c As Integer Dim temp As Double Dim x(1 To 10) As Double ----------------------------------------------------------Private Sub txtNumero_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then c = c+1 x( c ) = val(txtNumero.Text) Picture1.Print x ( c ) If c = 10 Then txtNumero.Enabled =false End If End If End Sub -----------------------------------------------------------

Ejercicios de Visual Basic

Prof.: Lic. Toledo Marcelo Alejandro e-mail: mtoledo@dgrfsa.gov.ar

Private Sub cmdOrdenar_Click() For i = 10 To 1 Step -1 maxIndex = 1 Se determina el indice del elemento mayor en el conjunto x(1) x(i) For j = 1 To i If x(j) > x(maxIndex) Then maxIndex = j End If Next j Se intercambian los valores de x(i) y el maximo encontrado en el recorrido de arriba temp = x(i) x(i) = x(maxIndex) x(maxIndex) = temp Next i lblNumerosOrdenados.Visible = true Picture1.Cls For i = 1 To 10 Picture1.Print x(i) Next End Sub

También podría gustarte