Option Explicit
Sub Main
Dim Ini,Fin,Es
Dim iE1,iE2,iE3
Dim nE1,nE2,nE3
Dim sE1,sE2,sE3,aNum
'Dim aRuote,aPos
Dim r1,r2,r3
Dim p1,p2,p3
Dim Ris,RisSto
Dim nCasi,TrovaCasi,nColpi
Dim aTitolo
Dim Id,Metodo,Adattatore,Pronostico,PrBA,PrCA,PrFI,PrGE,PrMI,PrNA,PrPA,PrRO,PrTo,PrVE,PrNZ,MediaPr
MsgBox "seleziona i tre elementi base"
If ImpostaParametri(iE1,iE2,iE3,TrovaCasi,nColpi) = False Then
MsgBox"I Parametri Inseriti Non Sono Corretti",vbCritical
Exit Sub
End If
nE1 = GetEstratto(EstrazioneFin,iE1)
nE2 = GetEstratto(EstrazioneFin,iE2)
nE2 = GetEstratto(EstrazioneFin,iE2)
sE1 = ScriviElemento(iE1)
sE2 = ScriviElemento(iE2)
sE3 = ScriviElemento(iE3)
'aNum = Array("",nE1,nE2,nE3,Vert(nE1),Vert(nE2),Vert(nE3)) ' qui inserisco gli elementi che vorrei utilizzare in un array
'aRuote = Array("",r1,r2,r3)
'aPos = Array("",p1,p2,p3)
Ini = EstrazioneFin - 2500
Fin = EstrazioneFin
' qui scrivo la formula faccio questo è solo un esempi0
' posso scrivere qualsiasi formula io voglia
' l'importante è ricopiarla in RisSto e in
Ris = Fuori90(Distanza(nE1,nE2) + Figura(nE3*nE1)) ' ricopiare tra virgolette 4 righe sotto
Scrivi "Elementi utilizzati " & sE1 & " " & sE2 & " " & sE3
Scrivi
Scrivi "Fuori90(Distanza(E1,E2) + Figura(E3*E1))" & "=" & Ris
Scrivi
aTitolo = Array("","Id","Metodo","Adattatore","Pronostico","BA","CA","FI","GE","MI","NA","PA","RO","TO","VE","NZ","Media")
InitTabella aTitolo,RGB(240,240,240),,3,vbBlack
nCasi = 0
For Es = Fin To Ini Step - 1
Messaggio "Sto lavorando per voi :-)" & nCasi
AvanzamentoElab Ini,Fin,Es
nE1 = GetEstratto(Es,iE1)
nE2 = GetEstratto(Es,iE2)
nE3 = GetEstratto(Es,iE3)
RisSto = Fuori90(Distanza(nE1,nE2) + Figura(nE3*nE1)) ' qui ricopiare espressione di ricerca
If RisSto = Ris Then
nCasi = nCasi + 1
If nCasi > TrovaCasi Then Exit For
' qui vorrei:
' calcolare la frequenza dei numeri fissi da 1 a 90 ->90
' sommare al primo elemento degli array i fissi da 1 a 90
' ripetere la stessa operazione fino al sesto elemento dell'array aNum
' fare un ciclo :
'for x= 1 to ubound(anum)-1
'for y=x+1 to ubound(a num)
'sommativo= x+y ' per la stringa prendo l'elementoBase non quello trasformato,quello si utilizza solo per la ricerca
' combino l'array in tre, fino a 6 elementi
' in tutto poco meno di 8000 metodi
' tutto da inserire nella tabella
Scrivi Format2(nCasi) & " " & DataEstrazione(Es) & " " & Format2(nE1) & "." & Format2(nE2) & "." & Format2(nE3) & "=" & RisSto
ReDim aRisultato(16)
' voci Tabella: Id= lo sviluppo, Metodo= stringaSviluppoEstratti,Adattatore=il numero sommato agli estratti,Pronostico=Risultato
'prBA= CasiPositivi sulla ruota.....MediPr= somma di Tutti i Positivi/Le ruote
Call AlimentaArrayRisultato(aRisultato,Id,Metodo,Adattatore,Pronostico,PrBA,PrCA,PrFI,PrGE,PrMI,PrNA,PrPA,PrRO,PrTo,PrVE,PrNZ,MediaPr)
Call AddRigaTabella(aRisultato,,,3)
End If
Next
Scrivi
CreaTabellaOrdinabile
End Sub
Sub AlimentaArrayRisultato(aRisultato,Id,Metodo,Adattatore,Pronostico,PrBA,PrCA,PrFI,PrGE,PrMI,PrNA,PrPA,PrRO,PrTo,PrVE,PrNZ,MediaPr)
aRisultato(1) = Id
aRisultato(2) = Metodo
aRisultato(3) = Adattatore
aRisultato(4) = Pronostico
aRisultato(5) = PrBA
aRisultato(6) = PrCA
aRisultato(7) = PrFI
aRisultato(8) = PrGE
aRisultato(9) = PrMI
aRisultato(10) = PrNA
aRisultato(11) = PrPA
aRisultato(12) = PrRO
aRisultato(13) = PrTo
aRisultato(14) = PrVE
aRisultato(15) = PrNZ
aRisultato(16) = MediaPr
End Sub
Function ImpostaParametri(E1,E2,E3,trovaCasi,nColpi)
Dim bRet
E1 = SelezionaElemento
If E1 > 0 Then
E2 = SelezionaElemento
If E2 > 0 Then
E3 = SelezionaElemento
If E3 > 0 Then
trovaCasi = NumeroCasi
If trovaCasi > 0 Then
nColpi = NumeroColpi
If nColpi > 0 Then
bRet = True
End If
End If
End If
End If
End If
ImpostaParametri = bRet
End Function
Function NumeroCasi
Dim x,ris
ReDim aCasi(30)
For x = 1 To 30
aCasi(x) = x
Next
ris = ScegliOpzioneMenu(aCasi,18,"Quanti Casi vuoi analizzare?")
NumeroCasi = ris
End Function
Function NumeroColpi
Dim x,ris
ReDim aCasi(30)
For x = 1 To 30
aCasi(x) = x
Next
ris = ScegliOpzioneMenu(aCasi,9,"Quanti Colpi vuoi analizzare?")
NumeroColpi = ris
End Function
Function SelezionaElemento
ReDim aVoci(55)
Dim R,P,Id,Indice
Dim Ris
For Id = 1 To UBound(aVoci)
Indice = 0
For R = 1 To 12
If R = 11 Then R = 12
For P = 1 To 5
Indice = Indice + 1
aVoci(Indice) = P & SiglaRuota(R)
Next
Next
Next
Ris = ScegliOpzioneMenu(aVoci,1,"GetElemento")
SelezionaElemento = CInt(Ris)
End Function
Function GetEstratto(Estrazione,IdEstratto)
Dim k,R,P
ReDim aEstrazioni(Estrazione,55)
Dim NewPos
NewPos = 0
For R = 1 To 12
If R = 11 Then R = 12
For P = 1 To 5
NewPos = NewPos + 1
aEstrazioni(Estrazione,NewPos) = Estratto(Estrazione,R,P)
Next
Next
GetEstratto = CInt(aEstrazioni(Estrazione,IdEstratto))
End Function
Function ScriviElemento(Indice)
ReDim aVoci(55)
Dim R,P,Id,Ind
Dim Ris
For Id = 1 To UBound(aVoci)
Ind = 0
For R = 1 To 12
If R = 11 Then R = 12
For P = 1 To 5
Ind = Ind + 1
aVoci(Ind) = P & SiglaRuota(R)
Next
Next
Next
Ris = aVoci(Indice)
ScriviElemento = Ris
End Function