i legend
Premium Member
Lo script di seguito da me realizzato , vede la sua nascita grazie al preziosissimo aiuto di joe,senza il quale non ci sarei riuscito
Come scritto nello script non ci sono certezze solo statistica dei casi nel passato.
L'output si può migliorare
l'ultimo caso se la verifica è gia cominciata ci rileva se i numeri in tabella sono gia sortiti...
Testatelo e fatemi sapere.
Aspetto vostre nuove..
Per joe e surmang provatelo per favore
Corretta la riga if fin <estrazionefin
con fin<=Estrazionefin
Ricopiate lo script oppure corregete la riga
Migliorato output dati
Come scritto nello script non ci sono certezze solo statistica dei casi nel passato.
L'output si può migliorare
l'ultimo caso se la verifica è gia cominciata ci rileva se i numeri in tabella sono gia sortiti...
Testatelo e fatemi sapere.
Aspetto vostre nuove..
Per joe e surmang provatelo per favore
Codice:
Option Explicit
Sub Main
' controllare dati di input e di output
' se si dovessero rilevare bugs segnalarli
' lo script è lungo l'errore puo essere dietro l'angolo
' l'algoritmo principe di rilevazione degli estratti è scritto da Joe
' script by I legend
' Lo script è a carattere statistico , ci rivela dei dati del passato ma nessuna certezza per il futuro.
'
Dim PEU,UEU,iF_E1,iP_E1,iR_E1,sE1,sF_E1
Dim iF_E2,iP_E2,iR_E2,sE2,sF_E2
Dim iF_E3,iP_E3,iR_E3,sE3,sF_E3
Dim Ind_EspRic,Str_EspRic,risultatoespressione
Dim casoTro
Dim eE1,eE2,eE3 ' estrattosemplice
Dim cF_E1,cF_E2,cF_E3 ' CalcoloFunzioneEstratto
Dim risultatoEspressioneSto
Dim EstrR,idEstr,Ini,Fin
Dim aTitolo,K
Dim Id,Metodo,nColpi,nNegativi,RuG
Dim filtroPari,filtroPariSto
Dim IniGioco,FinGioco,Es,Estrazioni,KK,C,PG,E,X
ReDim PrCi(90),TmP(90)
If ImpostaParametri(PEU,UEU,iF_E1,iP_E1,iR_E1,sE1,sF_E1,iF_E2,iP_E2,iR_E2,sE2,sF_E2,iF_E3,iP_E3,iR_E3,sE3,sF_E3,Ind_EspRic,Str_EspRic,nColpi,nNegativi,RuG) = False Then
MsgBox "I Parametri inseriti non sono corretti",vbCritical
Exit Sub
End If
EstrR = UEU
eE1 = Estratto(EstrR,iR_E1,iP_E1)
eE2 = Estratto(EstrR,iR_E2,iP_E2)
eE3 = Estratto(EstrR,iR_E3,iP_E3)
cF_E1 = CalcFunPar(iF_E1,eE1) ' questa funzione restituisce il valore finale dell'estratto
cF_E2 = CalcFunPar(iF_E2,eE2) ' questa funzione restituisce il valore finale dell'estratto
cF_E3 = CalcFunPar(iF_E3,eE3) ' questa funzione restituisce il valore finale dell'estratto
risultatoespressione = EseguiCalcolo(Ind_EspRic,cF_E1,cF_E2,cF_E3)
If risultatoespressione = 0 Then
MsgBox "la formula scelta Restituisce zero"
Exit Sub
End If
MsgBox DataEstrazione(EstrR) & " ; " & Str_EspRic & " ; " & cF_E1 & " , " & cF_E2 & " , " & cF_E3 & _
" RangeRisultato= " & risultatoespressione
Ini = PEU
Fin = UEU
aTitolo = Array("","Estratto","CasiPos.")
InitTabella aTitolo,RGB(240,240,240),,3,vbBlack
Scrivi "Estratti presenti nei casi : "
Scrivi
For idEstr = Ini To Fin
Messaggio "Sto Contando un Attimo Grazie :)" & casoTro
AvanzamentoElab Ini,Fin,idEstr
eE1 = Estratto(idEstr,iR_E1,iP_E1)
eE2 = Estratto(idEstr,iR_E2,iP_E2)
eE3 = Estratto(idEstr,iR_E3,iP_E3)
cF_E1 = CalcFunPar(iF_E1,eE1) ' questa funzione restituisce il valore finale dell'estratto
cF_E2 = CalcFunPar(iF_E2,eE2) ' questa funzione restituisce il valore finale dell'estratto
cF_E3 = CalcFunPar(iF_E3,eE3) ' questa funzione restituisce il valore finale dell'estratto
risultatoEspressioneSto = EseguiCalcolo(Ind_EspRic,cF_E1,cF_E2,cF_E3)
If risultatoEspressioneSto = risultatoespressione Then
casoTro = casoTro + 1
IniGioco = idEstr + 1
FinGioco = idEstr + nColpi
If IniGioco <= EstrazioneFin Then 'Controllo validità iniziale del cicl'
If FinGioco > EstrazioneFin Then FinGioco = EstrazioneFin 'Controllo/limitazione lunghezza del ciclo.
KK = 0
ReDim TmP(90)
For C = IniGioco To FinGioco
KK = KK + 1
For PG = 1 To 5
E = Estratto(C,RuG,PG)
TmP(E) = True
Next
Next
Else
Exit For
End If
Scrivi DataEstrazione(idEstr) & " ",1,False
Scrivi Format2(casoTro) & ") ",1,False
For X = 1 To 90
If TmP(X) = True Then PrCi(X) = PrCi(X) + 1 : Scrivi Format2(X) & " ",True,False
Next
Scrivi
End If
Next
For X = 1 To 90
ReDim aRis(2)
Call alimentaArray(aRis,X,CInt(PrCi(X)))
If CInt(PrCi(X)) >= casoTro - nNegativi Then Call AddRigaTabella(aRis)
Next
Call LanciaIntestazione(EstrR,Str_EspRic,cF_E1,cF_E2,cF_E3,risultatoespressione,casoTro,RuG,nColpi,nNegativi)
Call CreaTabellaOrdinabile
End Sub
Function ImpostaParametri(PEU,UEU,iF_E1,iP_E1,iR_E1,sE1,sF_E1,iF_E2,iP_E2,iR_E2,sE2,sF_E2,iF_E3,iP_E3,iR_E3,sE3,sF_E3,Ind_EspRic,Str_EspRic,nColpi,nNegativi,RuG)
Dim bRet
MsgBox "Sel Estrazione di ricerca,e, 3 EstrattiBase ",,"Metodo x calcolo Estratto semplice "
PEU = primaEstrazioneUtile(3914)
If PEU > 0 Then
UEU = UltimaEstrazioneUtile(3914)
If UEU > 0 Then
iF_E1 = IndFunPar
If iF_E1 > 0 Then
iP_E1 = ScegliPosizione
If iP_E1 > 0 Then
iR_E1 = ScegliRuota
If iR_E1 > 0 Then
sE1 = SiglaRuota(iR_E1) & iP_E1
sF_E1 = ScriviParametroCab(iF_E1,sE1)
iF_E2 = IndFunPar
If iF_E2 > 0 Then
iP_E2 = ScegliPosizione
If iP_E2 > 0 Then
iR_E2 = ScegliRuota
If iR_E2 > 0 Then
sE2 = SiglaRuota(iR_E2) & iP_E2
sF_E2 = ScriviParametroCab(iF_E2,sE2)
iF_E3 = IndFunPar
If iF_E3 > 0 Then
iP_E3 = ScegliPosizione
If iP_E3 > 0 Then
iR_E3 = ScegliRuota
If iR_E3 > 0 Then
sE3 = SiglaRuota(iR_E3) & iP_E3
sF_E3 = ScriviParametroCab(iF_E3,sE3)
Ind_EspRic = EspressioneDiRicerca(sF_E1,sF_E2,sF_E3)
Str_EspRic = scriviEspressioneDiRicerca(sF_E1,sF_E2,sF_E3,Ind_EspRic)
If Ind_EspRic > 0 Then
nColpi = QuantiColpi
If nColpi > 0 Then
nNegativi = QuantiNegativi
If nNegativi > 0 Then
MsgBox "Seleziona Ruota Di Ricerca ",,"Ruota Di Ricerca :" & SiglaRuota(iR_E1) & "-" & SiglaRuota(iR_E2) & "-" & SiglaRuota(iR_E3)
RuG = ScegliRuota
If RuG = 11 Then RuG = 12
End If
End If
bRet = True
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
ImpostaParametri = bRet
End Function
Sub alimentaArray(aRis,k,Fre)
aRis(1) = k
aRis(2) = Fre
End Sub
Sub LanciaIntestazione(EstrR,Str_EspRic,cF_E1,cF_E2,cF_E3,risultatoEspressione,CasoTro,RuG,nColpi,nNegativi)
Scrivi
Scrivi "Condizioni di Ricerca : ",1,,RGB(254,230,131)
Scrivi
Scrivi "DataCondizione : " & DataEstrazione(EstrR)
Scrivi "Esoressione di Ricerca : " & Str_EspRic
Scrivi "Valore estratti : " & " (" & Format2(cF_E1) & ") . (" & Format2(cF_E2) & ") . (" & Format2(cF_E3) & ")"
Scrivi "RangeRisultato : " & format2(risultatoEspressione)
Scrivi "Casi totali Esaminati : " & format2(CasoTro)
Scrivi "Ruota di verifica : " & NomeRuota(RuG)
Scrivi "Colpi di Verifica : " & Format2(nColpi)
Scrivi "Max Casi Negativi : " & Format2(nNegativi)
Scrivi
End Sub
Function ScegliPosizione
Dim aPos,Ris
aPos = Array("","1","2","3","4","5")
Ris = ScegliOpzioneMenu(aPos,1,"ScegliPosizione")
ScegliPosizione = Ris
End Function
Function IndFunPar
Dim Ris
Dim aParametro
aParametro = Array("","F90","Ddec","D45","Dif90","Sim91","Vert","Dec","Cad","Fig","C.Fig")
Ris = ScegliOpzioneMenu(aParametro,1,"SelezionaParametroEstratto")
IndFunPar = Ris
End Function
Function CalcFunPar(Ind_FunEstr,e_E1) 'indiceFunzioneParametroEstratto
Dim Ris
Dim aParametro(10)
aParametro(0) = 0
aParametro(1) = Fuori90(e_E1)
aParametro(2) = DiametraleD(e_E1)
aParametro(3) = Diametrale(e_E1)
aParametro(4) = ComplAdX(e_E1)
aParametro(5) = ComplAdX(e_E1,91)
aParametro(6) = Vert(e_E1)
aParametro(7) = Decina(e_E1)
aParametro(8) = Cadenza(e_E1)
aParametro(9) = Figura(e_E1)
aParametro(10) = ControFigura(e_E1)
Ris = aParametro(Ind_FunEstr)
CalcFunPar = Ris
End Function
Function ScriviParametroCab(Ind_Parametro,sE_1)
Dim Ris
Dim aParametro
aParametro = Array("","F90","Ddec","D45","Dif90","Sim91","Vert","Dec","Cad","Fig","C.Fig")
Ris = aParametro(Ind_Parametro) & "(" & sE_1 & ")"
ScriviParametroCab = Ris
End Function
Function EseguiCalcolo(Ind_StringaDiRic,ValFin_1,ValFin_2,ValFin_3)
Dim ris
Dim aOperazioni(18)
aOperazioni(0) = 0
aOperazioni(1) = Fuori90(ValFin_1 + ValFin_2 + ValFin_3)
aOperazioni(2) = Distanza(Fuori90(ValFin_1 + ValFin_2),ValFin_3)
aOperazioni(3) = Fuori90(ValFin_1 + Distanza(ValFin_2,ValFin_3))
aOperazioni(4) = Fuori90((ValFin_1 + ValFin_2)*ValFin_3)
aOperazioni(5) = Fuori90(ValFin_1 +(ValFin_2*ValFin_3))
aOperazioni(6) = Fuori90(Distanza(ValFin_1,ValFin_2) + ValFin_3)
aOperazioni(7) = Distanza(ValFin_1,Fuori90(ValFin_2 + ValFin_3))
aOperazioni(8) = Distanza(Distanza(ValFin_1,ValFin_2),ValFin_3)
aOperazioni(9) = Distanza(ValFin_1,Distanza(ValFin_2,ValFin_3))
aOperazioni(10) = Fuori90(Distanza(ValFin_1,ValFin_2)*ValFin_3)
aOperazioni(11) = Distanza(ValFin_1,Fuori90(ValFin_2*ValFin_3))
aOperazioni(12) = Fuori90((ValFin_1 * ValFin_2) + ValFin_3)
aOperazioni(13) = Fuori90(ValFin_1 *(ValFin_2 + ValFin_3))
aOperazioni(14) = Distanza(Fuori90(ValFin_1 * ValFin_2),ValFin_3)
aOperazioni(15) = Fuori90(ValFin_1 *Distanza(ValFin_2,ValFin_3))
aOperazioni(16) = Fuori90(ValFin_1 * ValFin_2 * ValFin_3)
aOperazioni(17) = Fuori90(Piramide(ValFin_1 & ValFin_2 & ValFin_3,,2))
aOperazioni(18) = Fuori90(ValFin_1 & ValFin_2 & ValFin_3)
ris = aOperazioni(Ind_StringaDiRic)
EseguiCalcolo = ris
End Function
Function EspressioneDiRicerca(sBase1,sBase2,sBase3)
Dim aOperatore,Ris
aOperatore = Array("",_
"(" & sBase1 & " + " & sBase2 & " + " & sBase3 & ")",_
"(" & sBase1 & " + " & sBase2 & ")- " & sBase3 & "",_
"" & sBase1 & " +(" & sBase2 & " - " & sBase3 & ")",_
"(" & sBase1 & " + " & sBase2 & ")* " & sBase3 & "",_
"" & sBase1 & " +(" & sBase2 & "* " & sBase3 & ")",_
"(" & sBase1 & " - " & sBase2 & ")+ " & sBase3 & "",_
"" & sBase1 & " -(" & sBase2 & " + " & sBase3 & ")",_
"(" & sBase1 & " - " & sBase2 & ")- " & sBase3 & "",_
"" & sBase1 & " -(" & sBase2 & " - " & sBase3 & ")",_
"(" & sBase1 & " - " & sBase2 & ")* " & sBase3 & "",_
"" & sBase1 & " -(" & sBase2 & " * " & sBase3 & ")",_
"(" & sBase1 & " * " & sBase2 & ")+ " & sBase3 & "",_
"" & sBase1 & " *(" & sBase2 & " + " & sBase3 & ")",_
"(" & sBase1 & " * " & sBase2 & ")- " & sBase3 & "",_
"" & sBase1 & " *(" & sBase2 & " - " & sBase3 & ")",_
"" & sBase1 & " * " & sBase2 & " * " & sBase3 & "",_
"Piramida(" & sBase1 & " ; " & sBase2 & " ; " & sBase3 & ")",_
"Unione(" & sBase1 & " ; " & sBase2 & " ; " & sBase3 & ")")
Ris = ScegliOpzioneMenu(aOperatore,1,"GetEspressioneDiRicerca")
EspressioneDiRicerca = Ris
End Function
Function scriviEspressioneDiRicerca(sBase1,sBase2,sBase3,Ind)
Dim aOperatore,Ris
aOperatore = Array("",_
"(" & sBase1 & " + " & sBase2 & " + " & sBase3 & ")",_
"(" & sBase1 & " + " & sBase2 & ")- " & sBase3 & "",_
"" & sBase1 & " +(" & sBase2 & " - " & sBase3 & ")",_
"(" & sBase1 & " + " & sBase2 & ")* " & sBase3 & "",_
"" & sBase1 & " +(" & sBase2 & "* " & sBase3 & ")",_
"(" & sBase1 & " - " & sBase2 & ")+ " & sBase3 & "",_
"" & sBase1 & " -(" & sBase2 & " + " & sBase3 & ")",_
"(" & sBase1 & " - " & sBase2 & ")- " & sBase3 & "",_
"" & sBase1 & " -(" & sBase2 & " - " & sBase3 & ")",_
"(" & sBase1 & " - " & sBase2 & ")* " & sBase3 & "",_
"" & sBase1 & " -(" & sBase2 & " * " & sBase3 & ")",_
"(" & sBase1 & " * " & sBase2 & ")+ " & sBase3 & "",_
"" & sBase1 & " *(" & sBase2 & " + " & sBase3 & ")",_
"(" & sBase1 & " * " & sBase2 & ")- " & sBase3 & "",_
"" & sBase1 & " *(" & sBase2 & " - " & sBase3 & ")",_
"" & sBase1 & " * " & sBase2 & " * " & sBase3 & "",_
"Piramida(" & sBase1 & " ; " & sBase2 & " ; " & sBase3 & ")",_
"Unione(" & sBase1 & " ; " & sBase2 & " ; " & sBase3 & ")")
Ris = aOperatore(Ind)
scriviEspressioneDiRicerca = Ris
End Function
Function UltimaEstrazioneUtile(nInizio)
Dim es,Inizio
ReDim aVoci(EstrazioneFin)
For es = nInizio To EstrazioneFin
aVoci(es) = DataEstrazione(es)
Next
Inizio = ScegliOpzioneMenu(aVoci,EstrazioneFin - 2,"Inserisci Data Ultima Analisi")
UltimaEstrazioneUtile = Inizio
End Function
Function primaEstrazioneUtile(nInizio)
Dim es,Inizio,Id
ReDim aVoci(EstrazioneFin)
For es = nInizio To EstrazioneFin
aVoci(es) = DataEstrazione(es)
Next
Id = EstrazioneFin - 1000
Inizio = ScegliOpzioneMenu(aVoci,Id,"Inserisci Data Inizio Analisi")
primaEstrazioneUtile = Inizio
End Function
Function QuantiColpi
Dim aVoci(15)
Dim i,bRet
For i = 1 To 15
aVoci(i) = i
Next
bRet = ScegliOpzioneMenu(aVoci,10,"SelezionaQuantiColpiEsaminare")
QuantiColpi = bRet
End Function
Function QuantiNegativi
Dim aVoci(15)
Dim i,bRet
For i = 1 To 15
aVoci(i) = i
Next
bRet = ScegliOpzioneMenu(aVoci,4,"SelezionaIlNumeroMassimoDiNegativi")
QuantiNegativi = bRet
End Function
Corretta la riga if fin <estrazionefin
con fin<=Estrazionefin
Ricopiate lo script oppure corregete la riga
Migliorato output dati
Ultima modifica: