Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/11/2008, 12:27
juank_z88
 
Fecha de Ingreso: noviembre-2008
Mensajes: 2
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Ayuda con Arrays Dinamicos en VB 6.0

Me gustaria saber si es posible, ya que el profe a principio me dijo q ordenara los numeros usando memoria dinamica en visual. Pero investigue y no se puede. Y el profe a la otra clase se rio diciendo q era obvio q no se podia.
Pero ahora me dio el mismo problema pero usando arrays dinamicos, ya q es la unica forma en VB6.0
BUENO EN LA WEB ENCONTRE ESTO:

Ordenamiento de los elementos de una lista
Uno de los procedimientos mas comunes y útiles en el procesamiento de datos es la
ordenación de los mismos, la ordenación tanto numérica como alfanumérica, sigue
las mismas reglas que empleamos nosotros en la vida normal. Hay muchas formas
de ordenar datos, y de estas, la ordenación por el "
método de la burbuja " es uno
de los mas populares. Veamos a continuación el algoritmo correspondiente para
ordenar una lista de n elementos de menor a mayor:

1.
Comparamos el primer elemento con el segundo, el segundo con el tercero,
el tercero con el cuarto, etc. Cuando el resultado de una comparación sea
mayor que, se intercambian los valores de los elementos comparados. Con
esto conseguimos llevar el valor mayor a la posición n.

2.
Repetimos el punto 1, ahora para los n-1 primeros elementos de la lista.
Con esto conseguimos llevar el valor mayor de estos a la posición n-1.

3.
Repetimos el punto 1, ahora para los n-2 primeros elementos de la lista, y
así sucesivamente.

4.
La ordenación termina después de repetir el proceso descrito, n-1 veces, o
cuando al finalizar la ejecución de iesimo proceso no haya habido ningún
cambio.
El siguiente ejemplo presenta la programación de este algoritmo para el caso
concreto de ordenar alfabéticamente la matriz de estructuras del tipo Ficha por el
campo nombre. Recuerde, fijar las siguientes propiedades en el formulario:
Nombre ValOrdena
ForeColor Negro
Caption Metodo Burbuja
BackColor Blanco
AutoRedraw True
Font Arial, 12, Negrita
Escriba el siguiente código en la sección de declaraciones:
Private Type Ficha
Nombre As String * 40
Nota As Single
End Type
Private Alumno() As Ficha
Escriba el siguiente código en el procedimiento Load del Form
Private Sub Form_Load()
Dim n As Integer, i As Integer
Dim s As Integer, k As Integer
Dim Aux As Ficha
n = InputBox("Numero de Alumnos de la lista", "Ingreso de Datos")
ReDim Alumno(1 To n) As Ficha
' Entrada de Datos
For i = 1 To n
With Alumno(i)
.Nombre = InputBox("Nombre del Alumno:", "Ingreso de Datos")
.Nota = InputBox("Nota del Alumno:", "Ingreso de Datos")
End With
Next i
'ORDENAMIENTO DE LOS ELEMENTOS DE LA LISTA

s = 1
k = n
While (s = 1) And (k > 1)
s = 0
'suponemos la lista ordenada
For i = 2 To k
If Alumno(i - 1).Nombre > Alumno(i).Nombre Then
Aux = Alumno(i - 1)
Alumno(i - 1) = Alumno(i)
Alumno(i) = Aux
s = 1
End If
Next i
k = k - 1
Wend
'Escribir la lista
For i = 1 To n
Print Alumno(i).Nombre; Tab(40); Alumno(i).Nota
Next i
End Sub
Intente mejorar la aplicación utilizando controles gráficos, como botones, cajas de
texto, etiquetas, cuadros de mensajes, etc.
EL PROBLEMA ES TRATAR DE INGRESAR ORDENADAMENTE NUMEROS A UNA LISTA EN VISUAL BASIC 6.0

Última edición por juank_z88; 10/11/2008 a las 07:24