ho un array ORDINATO che contiene i numeri 1 2 3 4 5 6
come faccio a sapere se sono sequenziali??? (un po come se dovessi verificare se ho fatto scala nel poker![]()
ho un array ORDINATO che contiene i numeri 1 2 3 4 5 6
come faccio a sapere se sono sequenziali??? (un po come se dovessi verificare se ho fatto scala nel poker![]()
codice:Function controlaCons(arr() As Integer) As Boolean For i = LBound(arr) + 1 To UBound(arr) If arr(i) - arr(i - 1) > 1 Then controlaCons = False Exit Function Else controlaCons = True End If Next i End Function
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te
Io farei così(spero non sia una c@##@ta!)
codice:valore = vettore(0) For i = Lbound(vettore) to Ubound(vettore) If valore <> vettore(i) Then Exit For valore = valore + 1 Next i If i < Ubound(vettore)+1 then 'non erano consecutivi!
no..
al primo non consecutivo finisce si verifica la condizione dell'If ed esce dal ciclo con l'exit for..
![]()
![]()
si avevo sbagliato a leggere cmq ci impiega lo stesso tempoOriginariamente inviato da Gigi84
no..
al primo non consecutivo finisce si verifica la condizione dell'If ed esce dal ciclo con l'exit for..
![]()
![]()
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te
si ..infatti + o - è la stesa cosa..!
..non mi ero accorto che qlcuno aveva già postato!!:gren:
![]()
![]()
giusto perchè così sa quale scegliere
codice:Private Declare Function GetTickCount Lib "kernel32" () As Long Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Form_Load() Dim arr() As Integer ReDim arr(30000) As Integer For l = 0 To 30000 If l = 20000 Then arr(l) = l + 4 Else arr(l) = l End If Next Debug.Print controlaCons1(arr) Sleep 2000 Debug.Print controlaCons(arr) End Sub Function controlaCons(arr() As Integer) As Boolean time1 = GetTickCount For i = LBound(arr) + 1 To UBound(arr) If arr(i) - arr(i - 1) > 1 Then controlaCons = False Exit For Else controlaCons = True End If Next i time2 = GetTickCount MsgBox (time2 - time1) / 1000 End Function Function controlaCons1(vettore() As Integer) As Boolean time1 = GetTickCount valore = vettore(0) For i = LBound(vettore) To UBound(vettore) If valore <> vettore(i) Then Exit For valore = valore + 1 Next i If i < UBound(vettore) + 1 Then controlaCons1 = False Else controlaCons1 = True End If time2 = GetTickCount MsgBox (time2 - time1) / 1000 End Function
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te
io ho risolto così....(per un vettore di lunghezza 5)
sembra funzionare.....codice:For i = 2 To 5 app1 = i - 1 app = vett4(app1) + 1 If app = vett4(i) Then cons = true else cons = false exit sub end if Next i if cons = true then msgbox("consecutivi")
vedi che alla fine te ne sei creato uno tu!:gren:
per xegallo:
() i due metodi sembrano uguali (mi veniva a tutti e due 0,05) allora ho provato a dimensionare il vettore a 30000000 (trenta mille mila.. ah.. numeri che fanno girare la testa
.!) e il tuo è più veloce di cirva un decimo di secondo 6,3 contro 6,4!! chissa perchè poi!(sarà perche io incremento anche una variabile??)
ciao!!![]()
![]()
![]()
è già :mavieni: :mavieni:Originariamente inviato da Gigi84
vedi che alla fine te ne sei creato uno tu!:gren:
per xegallo:
() i due metodi sembrano uguali (mi veniva a tutti e due 0,05) allora ho provato a dimensionare il vettore a 30000000 (trenta mille mila.. ah.. numeri che fanno girare la testa
.!) e il tuo è più veloce di cirva un decimo di secondo 6,3 contro 6,4!! chissa perchè poi!(sarà perche io incremento anche una variabile??)
ciao!!![]()
![]()
![]()
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te