L
LuigiB
Guest
Sull ultimo ritardo potrebve capitare un incremento in corso...il ciclo lo devi fare col for...quale k + 1.....
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature may not be available in some browsers.
Sub GetIncrRitMax
Dim k
Dim nId
Dim nIncr
Dim nRitMax
For k =1 To ubound ( aRit )
If aRit (k ) > NritMax then
If NritMax >0 Then
nIncr = aRit ( k ) -nRitMax
nId =nId + 1
Redim preserv aElencoIncrRitMax ( nId )
aElencoIncrRitMax ( nid ) = NIncr
Redim preserv aIdEstrIncrRitMax ( nid )
aIdEstrIncrRitMax ( nid ) = aIdEstrElencoRit ( k )
Else
NritMax = aRit ( k )
End if
End if
Next
End sub
Sub GetIncrRitMax
Dim k
Dim nId
Dim nIncr
Dim nRitMax
For k =1 To ubound ( aRit )
If aRit (k ) > NritMax then
If NritMax > 0 Then
nIncr = aRit ( k ) -nRitMax
nId =nId + 1
Redim preserv aElencoIncrRitMax ( nId )
aElencoIncrRitMax ( nid ) = NIncr
Redim preserv aIdEstrIncrRitMax ( nid )
aIdEstrIncrRitMax ( nid ) = aIdEstrElencoRit ( k )
End if
NritMax = aRit ( k )
End if
Next
End sub
Public Property Get IsCondizioneRispettata
' qui dentro devi scrivere il codice che fa tornare questa proprietà True o False
End Property
[COLOR=#0000CD][B]Option Explicit
Class clsLunghetta
Private aNumeri ' contiene i numeri della lunghetta
Private mInizio,mFine,aRuote,mSorte ' parametri per il range analisi
Private mClasse ' contine la classe della lunghetta
Private aElencoRit ' conterra l'elenco dei ritardi per la lunghetta
Private aIdEstrElencoRit ' conterra l'elenco dei ritardi per la lunghetta
Private aElencoIncrRitMax 'contiene l'elnco degli incrementi del ritardo max
Private aIdEstrIncrRitMax ' conterra l'elenco degli id estrazione in
'cui si è registrato l'incremento del ritmax conosciuto
' inizializza le proprietà dell'oggetto
Sub Init(sLunghetta,sChrSep,RangeInizio,RangeFine,vetRuote,SorteInGioco)
' acquisisco i parametri per l'analisi
mInizio = RangeInizio
mFine = RangeFine
aRuote = vetRuote
mSorte = SorteInGioco
' alimento il vettore con i numeri della lunghetta
Call AlimentaVettoreLunghetta(sLunghetta,sChrSep)
' calcolo l'elenco dei ritardi
Call ElencoRitardiTurbo(aNumeri,aRuote,mSorte,mInizio,mFine,aElencoRit,aIdEstrElencoRit)
' alimento il vettore che contien l'elenco degli incrementi rit max
Call AlimentaVettoreIncrRitMax
End Sub
Private Sub AlimentaVettoreLunghetta(sLunghetta,sChrSep)
' antepongo un carattere separatore per fare in modo che
' aNumeri si valorizzi dall'indice 1 (senno si sarebeb valorizzato dall'indice 0)
Call SplitByChar((sChrSep & sLunghetta),sChrSep,aNumeri)
' valorizzo la classe della lunghetta
mClasse = UBound(aNumeri)
End Sub
Private Sub AlimentaVettoreIncrRitMax
Dim nRitMax,nIncr,nId,k
nId = 0
' inizializzo il vettore a 0 elementi
ReDim aElencoIncrRitMax(0)
ReDim aIdEstrIncrRitMax(0)
' ciclo sul vettore dei ritardi
For k = 1 To UBound(aElencoRit)
' se il ritardo corrente supera il ritmax attuale..
If aElencoRit(k) > nRitMax Then
If nRitMax > 0 Then
' se il ritmax attuale è >0 (ivvero ne esiste uno)
' calcolo di quanto si è incrementato
nIncr = aElencoRit(k) - nRitMax
' incremento il contatore dei valori trovati
nId = nId + 1
' ridimensiono il vettore mantenendo i valori precedenti ma
' aggiungendone uno
ReDim Preserve aElencoIncrRitMax(nId)
' memorizzo il valore
aElencoIncrRitMax(nId) = nIncr
' ridimensiono il vettore mantnendo i valori precedenti ma
' aggiungendone uno
ReDim Preserve aIdEstrIncrRitMax(nId)
' memorizzo l'id dell'estrazione dove si è avuto l'incremento
aIdEstrIncrRitMax(nId) = aIdEstrElencoRit(k)
End If
nRitMax = aElencoRit(k)
End If
Next
End Sub
End Class
Sub Main
' codice usato solo per testare la classe
Dim clsL,n
Set clsL = New clsLunghetta
ReDim aRuote(1)
aRuote(1) = 3
For n = 1 To 90
Call clsL.Init(n,".",5000,8000,aRuote,1)
If clsL.IsCondizioneRispettata Then
Call Scrivi "Il numero " & n & "Rispetta la condizione"
End If
Next
Set clsL = Nothing
End Sub[/B][/COLOR]
Public property get isCondizioneRispettata
Dim incrAtt
Dim MaxSto
IncrAtt =aElencoIncrRitMax ( ubound ( aElencoIncrRitMax ))
'Secondo me per le formazioni e meglio usare Inc max di statistica formazione.
Infatti la Maggior parte delle formazioni a incrit==0
MaxSto =massimov (aElencoIncrRitMax )
If incrAtt>0 and maxsto- incratt < = 3 then
IsCondizioneRispettata = true
End if
End property
Option Explicit
Class clsLunghetta
Private aNumeri ' contiene i numeri della lunghetta
Private mInizio,mFine,aRuote,mSorte ' parametri per il range analisi
Private mClasse ' contine la classe della lunghetta
Private aElencoRit ' conterra l'elenco dei ritardi per la lunghetta
Private aIdEstrElencoRit ' conterra l'elenco dei ritardi per la lunghetta
Private aElencoIncrRitMax 'contiene l'elnco degli incrementi del ritardo max
Private aIdEstrIncrRitMax ' conterra l'elenco degli id estrazione in
'cui si è registrato l'incremento del ritmax conosciuto
Private Rit, RitMax, Inc, Freq, MaxIncSto
' inizializza le proprietà dell'oggetto
Sub Init(sLunghetta,sChrSep,RangeInizio,RangeFine,vetRuote,SorteInGioco, Ritardo,Incremento, MaxInc,Frequenza)
' acquisisco i parametri per l'analisi
mInizio = RangeInizio
mFine = RangeFine
aRuote = vetRuote
mSorte = SorteInGioco
' alimento il vettore con i numeri della lunghetta
Call AlimentaVettoreLunghetta(sLunghetta,sChrSep)
' calcolo l'elenco dei ritardi
Call ElencoRitardiTurbo(aNumeri,aRuote,mSorte,mInizio,mFine,aElencoRit,aIdEstrElencoRit)
' alimento il vettore che contien l'elenco degli incrementi rit max
Call GetStatistica
Incremento =inc : Ritardo =Rit : Frequenza =Freq
Call AlimentaVettoreIncrRitMax
MaxInc= MaxIncSto
End Sub
Private Sub AlimentaVettoreLunghetta(sLunghetta,sChrSep)
' antepongo un carattere separatore per fare in modo che
' aNumeri si valorizzi dall'indice 1 (senno si sarebeb valorizzato dall'indice 0)
Call SplitByChar((sChrSep & sLunghetta),sChrSep,aNumeri)
' valorizzo la classe della lunghetta
mClasse = UBound(aNumeri)
End Sub
Private Sub AlimentaVettoreIncrRitMax
Dim nRitMax,nIncr,nId,k
nId = 0
' inizializzo il vettore a 0 elementi
ReDim aElencoIncrRitMax(0)
ReDim aIdEstrIncrRitMax(0)
' ciclo sul vettore dei ritardi
For k = 1 To UBound(aElencoRit)-1
' se il ritardo corrente supera il ritmax attuale..
If aElencoRit(k) > nRitMax Then
If nRitMax > 0 Then
' se il ritmax attuale è >0 (ivvero ne esiste uno)
' calcolo di quanto si è incrementato
nIncr = aElencoRit(k) - nRitMax
' incremento il contatore dei valori trovati
nId = nId + 1
' ridimensiono il vettore mantenendo i valori precedenti ma
' aggiungendone uno
ReDim Preserve aElencoIncrRitMax(nId)
' memorizzo il valore
aElencoIncrRitMax(nId) = nIncr
' ridimensiono il vettore mantnendo i valori precedenti ma
' aggiungendone uno
ReDim Preserve aIdEstrIncrRitMax(nId)
' memorizzo l'id dell'estrazione dove si è avuto l'incremento
aIdEstrIncrRitMax(nId) = aIdEstrElencoRit(k)
End If
nRitMax = aElencoRit(k)
End If
Next
MaxIncSto =massimov ( aElencoIncrRitMax )
End Sub
Private Sub GetStatistica
Call statisticaformazioneturbo ( aNumeri, aRuote, mSorte, Rit, RitMax, Inc, Freq )
End sub
Public property get isCondizioneRispettata
If Inc >0 Then
If MaxIncSto -Inc < = 3 then IsCondizioneRispettata = true
End if
End property
End Class
Sub Main
' codice usato solo per testare la classe
Dim clsL,n, n1
Dim Rit, Incr, Freq, MaxInc
Dim aNum
Set clsL = New clsLunghetta
ReDim aRuote(1)
aRuote(1) = 5
' intestazione
Scrivi " Form|Rit |Inc |incSto|Freq"
For n = 1 To 89
For n1=n+1 To 90
aNum =n&"."&n1
Call clsL.Init ( aNum, ".",3950,estrazionefin ,aRuote,1,rit, Incr, MaxInc, Freq )
If clsL.IsCondizioneRispettata Then
Scrivi aNum &" ",1,0
scrivi Rit &" ",0,0
Scrivi incr &" ",0,0
Scrivi MaxInc &" ",0,0
Scrivi freq
End If
Next
Next
Set clsL = Nothing
End Sub