Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - sort array
Forum - Visual Basic 6 - sort array

Avatar
azz.ciccio (Normal User)
Pro


Messaggi: 74
Iscritto: 08/04/2009

Segnala al moderatore
Postato alle 14:42
Martedì, 21/04/2009
ciao a tutti stavo cercando di scrivere un'array con relativo codice per ordinare la lista.
pero' aime' il risultato e' sempre 0
Codice sorgente - presumibilmente VB.NET

  1. Option Explicit
  2. Dim stringa(10) As String
  3. Dim V(10), i, j, temp As Integer
  4. Private Sub Command1_Click()
  5. Dim i As Integer
  6. For i = 0 To UBound(stringa)
  7.     List1.AddItem stringa(i)
  8. Next
  9. End Sub
  10. Private Sub Command2_Click()
  11. For i = 1 To 10
  12.  For j = i + 1 To 10
  13.   If V(i) > V(j) Then
  14.   temp = V(i)
  15.     V(i) = V(j)
  16.     V(j) = temp
  17.   End If
  18.  Next j
  19. Next i
  20. MsgBox temp
  21. End Sub
  22. Private Sub Form_Load()
  23.     stringa(0) = "3 0 1 2.6 5.2 .07 .07 .003"
  24.     stringa(1) = "3 0 1 2.6 5.2 .07 .07 .063"
  25.     stringa(2) = "3 0 1 2.6 5.2 .07 .07 .053"
  26.     stringa(3) = "3 0 1 2.6 5.2 .07 .07 .033"
  27.     stringa(4) = "3 0 1 2.6 5.2 .07 .07 .023"
  28.     stringa(5) = "3 0 1 2.6 5.2 .07 .07 .033"
  29.     stringa(6) = "3 0 1 3.0 5.2 .07 .07 .049"
  30.     stringa(7) = "3 0 1 3.0 5.2 .07 .07 .019"
  31.     stringa(8) = "3 0 1 3.0 5.2 .07 .07 .012"
  32.     stringa(9) = "3 0 1 3.0 5.2 .07 .07 .011"
  33. End Sub



idee???:-|

un'ultima domanda, e' possibile dichiarare un'array dinamico senza nessun valore?
mi spiego, i valori che andro' a caricare variano da 1 a 100000 o piu'...

grazie:k:

Ultima modifica effettuata da azz.ciccio il 21/04/2009 alle 14:52
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:22
Martedì, 21/04/2009
Uhm, avevo il diagramma a blocchi di un programma di sort da qualche parte. Se lo trovo ti posto lo pseudocodice ._.

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 18:45
Martedì, 21/04/2009
Se vuoi inserire quei dati ordinati nella listbox, ti basta impostare la proprieta'

Sorted

a True nell'IDE. Avrai gli elementi gia' ordinati.

Ma se vuoi scrivere tu l'ordinamento, non devi usare un vettore V quando gli elementi da ordinare stanno nel vettore stringa ...

PM Quote
Avatar
Louis (Normal User)
Pro


Messaggi: 150
Iscritto: 22/04/2008

Segnala al moderatore
Postato alle 11:22
Giovedì, 23/04/2009
Ciao ciccio,
ti ho predisposto le seguenti routine che sembrano funzionare. Per l'ordinamento della List, come ti è già stato detto basta usare la prop. Sorted. Comunque con un noto algoritmo di ordinamento é possibile ottene le due sequenze (crescente < e decrescente >;)per inserire gli elementi nei controlli (allo scopo ho utilizzato un Txt).

Codice sorgente - presumibilmente VB.NET

  1. Dim stringaV() As Variant
  2. Dim i As Integer, j As Integer, temp As String
  3. '---------------------------------------------
  4. Private Sub Command1_Click()
  5.  
  6. ' Carica il vettore:
  7.     stringaV = Array("3012.65.2.07.07.003", "3012.65.2.07.07.063", "3012.65.2.07.07.053", _
  8.     "3012.65.2.07.07.033", "3012.65.2.07.07.023", "3012.65.2.07.07.033", "3013.05.2.07.07.049", _
  9.     "3013.05.2.07.07.019", "3013.05.2.07.07.012", "3013.05.2.07.07.011")
  10.     ReDim Preserve stringaV(LBound(stringaV) To UBound(stringaV))
  11.  
  12. 'Carica la List:
  13.     'List1.Sorted = True - ordina in senso crescente:
  14.     For i = LBound(stringaV) To UBound(stringaV)
  15.         List1.AddItem stringaV(i)
  16.     Next i
  17.  
  18. End Sub
  19. '---------------------------------------------
  20. Private Sub Command2_Click()
  21.     Dim risultOrd As String
  22.  
  23. ' Dispone un ordinamento crescente:
  24.     For i = UBound(stringaV, 1) To LBound(stringaV, 1) Step -1
  25.         For j = LBound(stringaV, 1) To i - 1
  26.             If stringaV(j) < stringaV(j + 1) Then
  27.                 temp = stringaV(j)
  28.                 stringaV(j) = stringaV(j + 1)
  29.                 stringaV(j + 1) = temp
  30.             End If
  31.         Next j
  32.     Next i
  33.    
  34. ' Visualizza gli elementi in una Txt :
  35.     'Text1.MultiLine
  36.     For i = UBound(stringaV, 1) To LBound(stringaV, 1) Step -1
  37.         risultOrd = risultOrd & Space(1) & stringaV(i)
  38.     Next i
  39.    Text1.Text = risultOrd
  40.  
  41. End Sub



:k:

PM Quote
Avatar
azz.ciccio (Normal User)
Pro


Messaggi: 74
Iscritto: 08/04/2009

Segnala al moderatore
Postato alle 12:31
Giovedì, 23/04/2009
Testo quotato

Postato originariamente da Louis:

Ciao ciccio,
ti ho predisposto le seguenti routine che sembrano funzionare. Per l'ordinamento della List, come ti è già stato detto basta usare la prop. Sorted. Comunque con un noto algoritmo di ordinamento é possibile ottene le due sequenze (crescente < e decrescente >;)per inserire gli elementi nei controlli (allo scopo ho utilizzato un Txt).
:k:



ciao, grazie 1000 la provo subito e ti faccio sapere.
grazie ancora.
A.

PM Quote