Vous êtes sur la page 1sur 8

Ejercicios de Visual Basic

Arreglos

Introducción a las Estructuras de Datos. Arreglos Unidimensionales: Vectores Vectores Estáticos en VB Vectores Dinámicos en VB Ordenando un Vector

Introducción a las Estructuras de Datos.

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

Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen en ella.

Los tipos de datos más frecuentemente utilizados son:

I.

Datos Simples

 

a.

Estándar

 

i.

Entero

ii.

Real

iii. Carácter

iv. Lógico

 

b.

No estándar (definido por el programador)

 

Subrango ii. Enumerativo

i.

II.

Datos Estructurados

a.

Estáticos

 

i.

Arreglos (array)

ii. Registro iii. Archivo (fichero)

 

iv. Cadena

 

b.

Dinámicos

 

i.

Lista (pila/cola)

ii. Lista enlazada iii. Árbol iv. Grafo

Las estructuras de datos

  • son

aquellas en las que el tamaño ocupado en la

memoria se define antes de que el programa se ejecute y no puede modificarse durante la corrida.

Las estructuras de datos

dinámicas

no tienen las limitaciones y restricciones en el

tamaño de memoria que son propias de las estructuras estáticas. Mediante el uso de un tipo

de datos específico, denominado puntero, es posible construir estructuras de datos dinámicas soportadas por la mayoría de los lenguajes de programación. Cuando un lenguaje de programación no soporta un tipo dado de estructura de datos eventualmente puede ser simulada mediante el algoritmo apropiado. Una característica 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 múltiples datos individuales, pudiendo cada una de ellos ser referenciados individualmente.

Ejercicios de Visual Basic

Arreglos Unidimensionales: Vectores

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

Un arreglo es un conjunto finito y ordenado de elementos homogéneos. La propiedad

ordenado significa que el primer elemento, el segundo, el tercero,

,

el enésimo 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}

Nótese que todos los elementos comparten el mismo identificador (A en este caso) mientras que el subíndice identifica a cada elemento individual.

Al número 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 posición 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 subíndice.

X

(1)

X

(2)

X

(3)

X

(4)

X

(5)

X

(6)

30

33

28

30

31

29

Vectores Estáticos 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 instrucción 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

Ejemplo 1

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

Implementar una aplicación VB que lea 10 números y calcule e imprima su promedio.

GUI

Ejercicios de Visual Basic Ejemplo 1 Prof.: Lic. Toledo Marcelo Alejandro e-mail: mtoledo@dgrfsa.gov.ar Implementar una aplicación

Codificación Básica

-------------------------------------------------------------------------------

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

Vectores Dinámicos en VB

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

Visual Basic permite cambiar el rango de un vector durante la ejecución del programa, pero para ello debe declararse este como vector dinámico.

Dim identificador( ) As tipo

Nótese que se ha dejado vacío el espacio entre paréntesis 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 instrucción ReDim, cuya sintaxis general es:

ReDim identificador(N ) As tipo

Donde N es una variable numérica entera cuyo valor se ha determinado previamente.

Ejemplo 2

Implementar una aplicación VB que lea la cantidad de números a promediar y los números, y calcule e imprima su promedio.

GUI

Ejercicios de Visual Basic Vectores Dinámicos en VB Prof.: Lic. Toledo Marcelo Alejandro e-mail: mtoledo@dgrfsa.gov.ar Visual

Codificación Básica

-------------------------------------------------------------------------------

General

Dim C As Integer Dim N As Integer Dim Suma As Double Dim X() As Double

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 aplicación VB que lea una lista de números 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 Private Sub txtCantidad_KeyPress(KeyAscii As Integer

Ejercicios de Visual Basic

Codificación Básica

-----------------------------------------------------------

General

Dim C As Integer Dim Suma As Double Dim X() As Double

-----------------------------------------------------------

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

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, diferenciándose por su complejidad y eficiencia. Uno de los algoritmos de ordenamiento de vectores más simple (aunque no muy eficiente) es el de ordenación por selección.

Para ordenar ascendentemente un vector numérico el algoritmo de ordenación por selección 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

Ejercicios de Visual Basic Prof.: Lic. Toledo Marcelo Alejandro e-mail: mtoledo@dgrfsa.gov.ar GUI Codificación Básica ----------------------------------------------------------- General

Codificación Básica

-----------------------------------------------------------

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

Private Sub cmdOrdenar_Click()

For i = 10 To 1 Step -1

maxIndex = 1

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

‘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