Visual Basic - metodo burbuja

Life is soft - evento anual de software empresarial
 
Vista:

metodo burbuja

Publicado por aris (10 intervenciones) el 25/11/2005 19:04:12
hola necesito hacerr un programa en donde el usuario al introducir las temperaturas me las ordene por medio del metodo burbuja tengo esto:

Dim arrtemp()
total = Val(Text1.Text)
ReDim arrtemp(total)


For i = 0 To total
arrtemp(i) = InputBox("introduce las temperaturas")
Print arrtemp(i)
Next i

For i = 1 To (total - 1) Step 1
For j = 1 To total Step 1
If arrtemp( j ) < arrtemp( j - 1 ) Then
aux = arrtemp( j )
arrtemp( j ) = arrtemp( j - 1 )
arrtemp( j - 1 ) = aux
Label4.Caption = arrtemp(i)
End If
Next j
Next i

end sub

No se donde esta mi error que no me las ordena solo me muestra un numero. agradeceria tu ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:metodo burbuja

Publicado por ivan (463 intervenciones) el 25/11/2005 19:48:08
Cambia tu código cuando haces las comparaciones...

For i = 0 To (total - 1)
For j = 1 To total
If arrtemp(j - 1) > arrtemp(j) Then
aux = arrtemp(j)
arrtemp(j) = arrtemp(j - 1)
arrtemp(j - 1) = aux
Label4.Caption = arrtemp(i)
End If
Next j
Next i

Acuérdate que el puntero de los arrays inician desde 0.

Espero esto te sirva. Saudos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:metodo burbuja

Publicado por aris (10 intervenciones) el 25/11/2005 20:42:29
ok gracias pero de todas formas no los ordena has de cuenta le meto 10 7 8 y me imprime 10 10 10 7 ago asi mira te mando el porgrama completo a ver si tu ves los errores

Private Sub Command1_Click()
Dim arrtemp()
total = Val(Text1.Text)
ReDim arrtemp(total)


For i = 1 To total
arrtemp(i) = InputBox("introduce las temperaturas")
Print arrtemp(i)
Next i

For i = 0 To (total - 1)
For j = 1 To total
If arrtemp(j - 1) > arrtemp(j) Then
aux = arrtemp(j)
arrtemp(j) = arrtemp(j - 1)
arrtemp(j - 1) = aux
List1.AddItem arrtemp(i)
End If
Next j
Next i

end sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:metodo burbuja

Publicado por ivan (463 intervenciones) el 25/11/2005 21:04:57
ejecuté es código con los 3 numeros que dices en el orden que dices.. 10 7 y 8 y si los ordena.

Lo que no entiendo es la instruccion
List1.AddItem arrtemp(i)

Si lo que quieres es pasarlos a la lista ya ordenados, hazlo una vez que termine los dos ciclos. Suerte y saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar