martes, 25 de febrero de 2014

Grado Undécimo Documento de apoyo programa Arreglos

PROGRAMA ARREGLOS

INTERFAZ GRÁFICA

Imagen 5. GUI programa arreglos.

En este programa le suministramos al usuario nueve (9) cajas de texto, en las cuales se digitaran números enteros. Al pulsar el botón Organizar, se mostrarán los números en tres formas: la primera de la forma como se digitaron, la segunda ordenados de menor a mayor (AZ) y en la tercera ordenados de mayor a menor (ZA). Las herramientas usadas para mostrar los números conforme se dijo anteriormente son ListBox.

Imagen 6. Herramienta ListBox.

Herramienta
Name
Text
Label
lblAviso
Digite un número entero (entre 0 y 1000) en cada caja de texto:
Label
lblNumDigitados
Números digitados
Label
lblNumAZ
Orden ZA
Label
lblNumZA
Orden AZ
TextBox
txtNumUno
No aplica
TextBox
txtNumDos
No aplica
TextBox
txtNumTres
No aplica
TextBox
txtNumCuatro
No aplica
TextBox
txtNumCinco
No aplica
TextBox
txtNumSeis
No aplica
TextBox
txtNumSiete
No aplica
TextBox
txtNumOcho
No aplica
TextBox
txtNumNueve
No aplica
ListBox
ListNormal
No aplica
ListBox
ListAscendente
No aplica
ListBox
ListDescendente
No aplica
Button
btnOrganizar
Organizar
Tabla 3. Herramientas y propiedades.
En este programa se utiliza un arreglo unidimensional para “cargar” los números digitados en él y poderlos manipular de manera más fácil, conforme se vio en clase. El método utilizado para organizar los números es el de la Burbuja, que hace comparación entre dos posiciones adyacentes (seguidas) del arreglo y en el caso de que el valor de la posición de la izquierda sea mayor que la de la derecha los intercambia.

Se hace uso de otra estructura cíclica que es la For Next, que nos permite “desplazarnos” por el arreglo y efectuar acciones, como cargar su contenido en el respectivo ListBox, o intercambiar los valores entre posiciones según el método de la burbuja.

Para ordenar ascendentemente o descendentemente el arreglo la estructura es la misma, varía solamente en el signo (> ó <) de la condición.


CÓDIGO FUENTE
Public Class frmArreglos

Private Sub btnOrganizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOrganizar.Click
'Declaración del arreglo y variables de trabajo
Dim arreglo() As Integer = {0, 0, 0, 0, 0, 0, 0, 0, 0}
Dim i, pasadas, almacena As Integer
'se cargan los valores digitados en cada de texto en su respectiva posición del arreglo
   arreglo(0) = Val(txtNumUno.Text)
   arreglo(1) = Val(txtNumDos.Text)
   arreglo(2) = Val(txtNumTres.Text)
   arreglo(3) = Val(txtNumCuatro.Text)
   arreglo(4) = Val(txtNumCinco.Text)
   arreglo(5) = Val(txtNumSeis.Text)
   arreglo(6) = Val(txtNumSiete.Text)
   arreglo(7) = Val(txtNumOcho.Text)
   arreglo(8) = Val(txtNumNueve.Text)

'Adiciona todos los elementos del arreglo en
'forma original (como se digitaron) al listNormal

For i = 0 To 8
   ListNormal.Items.Add(arreglo(i))
Next

'Método de la burbuja para ordenar en forma Ascendente

For pasadas = 1 To 8
   For i = 0 To 8 – 1
    'Compara los elementos adyacentes y los intercambia
    'si el primer elemento es mayor que el segundo
      If (arreglo(i) > arreglo(i + 1)) Then
         almacena = arreglo(i)
         arreglo(i) = arreglo(i + 1)
         arreglo(i + 1) = almacena
      End If
      Next
   Next

For i = 0 To 8
'Adiciona los elementos del arreglo ordenados ascendentemente a ListAscendente
   ListAscendente.Items.Add(arreglo(i))
Next

For pasadas = 1 To 8
   For i = 0 To 8 - 1
'Similar al caso ascendente, la diferencia radica en el signo "<" que hace lo contrario de 'ordenarlo en forma descendente
     If (arreglo(i) < arreglo(i + 1)) Then
       almacena = arreglo(i)
       arreglo(i) = arreglo(i + 1)
       arreglo(i + 1) = almacena
     End If
   Next
Next

For i = 0 To 8
'Adiciona los elementos del arreglo ordenados descendentemente a ListDescendente
   ListDescendente.Items.Add(arreglo(i))
Next
'limpiamos las cajas de texto
txtNumUno.Text = ""
txtNumDos.Text = ""
txtNumTres.Text = ""
txtNumCuatro.Text = ""
txtNumCinco.Text = ""
txtNumSeis.Text = ""
txtNumSiete.Text = ""
txtNumOcho.Text = ""
txtNumNueve.Text = ""
       
End Sub

End Class 

No hay comentarios:

Publicar un comentario