E' già disponibile in rete e si usa con L8+. E' nato da una mia idea e realizzato dalla mitica Rosanna.
Sub main()
'0902_24aa Ro x jp4 Statistica sortite max rit su tutte
'inserimento di ritardi a ruota
'visualizzazione dei 10 max ritardi storici (o meno se i casi rilevati sono < 10 )
Dim tt(1),pr(1),nu(),nn(1), stat(10,6),sto1(),sto2(),dati()
'----------------------------------------------------------------------
For i= 1 To 10 : stat(i,1)=i : stat(i,2)=0 :stat(i,3)=0: stat(i,4)=0: stat(i,5)=0 : stat(i,6)=0 : Next
' carico la ruota sulla colonna 1 e riempio di zeri i campi della matrice
tt(1)=11
Qes=InputBox("Quante estrazioni vuoi analizzare?",,400)
fin=EstrazioneFin
ini=EstrazioneFin+1-qes
Redim sto1(10,0) 'matrice su cui carico tutti i RitRcR
Redim sto2(10,0) 'matrice su cui carico tutti i RitRsfR
'----------------------------------------------------------------------------------
Scrivi Chr(10)& Space(4)& "RICERCA DEGLI SFALDAMENTI DEI PIU' RITARDATARI SU TUTTE",1
Scrivi Space(14)& " DAL "& DataEstrazione(ini) & " AL " & DataEstrazione(fin)&chr(10),1
Scrivi Space(23)& "Num - RC - Rsf - Ruote",1
For es=ini To fin ' es è l'estrazione di sfaldamento
Messaggio es
'--------------------------- VERIFICA DEI NUMERI PIU' RITARDATARI A TT
For i= 1 To 10
stat(i,3)=stat(i,3)+1'incremento il rit cronologico a ruota
Next
rit=rit+1 : Erase nu : co=1 : Redim nu(1)
pr(1)=NumeroPosRit(es-1,11,1)
nu(1)=pr(1)
rc=SerieRitardo(1,es-1,pr,tt,1) ' il rit è calcolato all'es precedente
For i= 2 To 20 '------------------- ricerca di eventuali altri ritardatari
nn(1)=NumeroPosRit(es-1,11,i)' vede quali sono gli altri numeri dal 2° posto in poi
If SerieRitardo(1,es-1,nn,tt,1)= rc Then 'se hanno lo stesso rit del più ritardatario a tt
co=co+1
Redim preserve nu(co) ' lo memorizza su nu
nu(co)=nn(1)
Else
Exit For 'altrimenti esce dal ciclo
End If
Next
'-------------------------------------------- RICERCA DEGLI SFALDAMENTI
If SerieFreq(es,es,nu,tt,1)>0 Then ' se trova degli sfaldamenti a tt
For i= 1 To 10 : stat(i,4)=stat(i,4)+1 : Next ' incremento il rit di sfaldamento a ruota
'-------------------------------------------------------------------------------------------------
'ATTENZIONE: per visualizzare i casi in cui vi sono più ritardatari al 1° posto
' (con pari ritardo) togliere apice alla riga che segue:
If co>1 Then ColoreTesto 1 : Scrivi Chr(10)& Space(14)& "[Al "& DataEstrazione(es-1) &" con RC "& rc & " => " & StringaNumeri(nu)&"]",1
'----------------------------------------------------------------------------------------------STOP
k="" : rigo="" : ColoreTesto 0'k contiene le ruote di sfaldamento, rigo i numeri
For r= 1 To 10
For i= 1 To co
nn(1)=nu(i) 'scorro i numeri più ritardatari
If Posizione(es,r,nn(1))>0 Then
rigo=rigo& Format2(nn(1))&" "
stat(r,2)=stat(r,2)+1 'conteggio i casi sulla colonna 1
If stat(r,2)> co1 Then co1 = stat(r,2) ' verifico di quante colonne devono essere le 2 mat sto1/sto2
Redim preserve sto1(10,co1) ' ridimensiono la mat sto1
Redim preserve sto2(10,co1) ' ridimensiono la mat sto2 nb le colonne sono uguali!!
If STAT(R,3)-1 >-1 Then sto1(r,stat(r,2))=stat(r,3)-1 Else sto1(r,stat(r,2))= 0' aggiungo nella matrice il RcR del caso in esame
If STAT(R,4)-1>-1 Then sto2(r,stat(r,2))=stat(r,4)-1 Else STO2(R,STAT(R,2))=0 ' aggiungo nella matrice il RsfR del caso in esame
k=k& " "& SiglaRuota(r)& " "
If stat(r,3)-1 >stat(r,5) Then stat(r,5)=stat(r,3)-1 'e calcolo il max storico RC a ruota
If stat(r,4)-1 >stat(r,6) Then stat(r,6)=stat(r,4)-1 'e calcolo il max storico sf a ruota
stat(r,3)=0 ' azzero il ritardo cron su ruota
stat(r,4)=0 ' azzero il ritardo sf su ruota
End If
Next
Next
Scrivi DataEstrazione(es)&Space(3)& FormatSpace(rigo,13,1)& Space(3)&_
FormatSpace(rc,2,1) &Space(4)& FormatSpace(rit-1,2,1) & Space(3) & k
rit=0
End If
'------------------------------------- LA SITUAZIONE ATTUALE AD ESTRAZIONEFIN
If es=EstrazioneFin Then
Erase nu : co=1 : Redim nu(1)
pr(1)=NumeroPosRit(es,11,1)
nu(1)=pr(1)
rc=SerieRitardo(1,es,pr,tt,1) ' il rit è calcolato all'es precedente
For i= 2 To 20 '------------------- ricerca di eventuali altri ritardatari
nn(1)=NumeroPosRit(es,11,i)' vede quali sono gli altri numeri dal 2° posto in poi
If SerieRitardo(1,es,nn,tt,1)= rc Then 'se hanno lo stesso rit del più ritardatario a tt
co=co+1
Redim preserve nu(co) ' lo memorizza su nu
nu(co)=nn(1)
Else
Exit For 'altrimenti esce dal ciclo
End If
Next
Scrivi Space(23)& "Num - RC - Rsf - Ruote",1
Scrivi Chr(10)& String(92,"=")&chr(10)& Space(14)& " SITUAZIONE AD ESTRAZIONE FIN"&chr(10),1
Scrivi "Data esfin "& FormatSpace("Nu ",16,1)&space(3)&"Rc RitSf.TT",1
Scrivi DataEstrazione(es)& Space(4)& FormatSpace(StringaNumeri(nu),12,1)&space(2)& FormatSpace(rc,3,1) & Space(4)& FormatSpace(rit,2,1)
Scrivi Chr(10)& " Rc= da quante estrazioni il/i numero/i non esce a tutte "
Scrivi " RitSf.TT = da quante estrazioni non si sfalda su TT almeno un num max ritardatario su TT"
Scrivi Chr(10)& String(92,"=") : ColoreTesto 2
End If
Next
'------------------------------ VISUALIZZO LA MATRICE RIEPILOGATIVA DEGLI SFALDAMENTI
Scrivi Chr(10)& " RIEPILOGO DEGLI SFALDAMENTI E DEI RITARDI PER RUOTA",1
Scrivi " su "& qes & " estrazioni e "& casi & " sfaldamenti rilevati "&chr(10),1
Scrivi Space(4)&" Ru - CAsi - RitCronR - RitSfR - MaxRcR - MaxRSfR"
For i= 1 To 10
Scrivi Space(5)& SiglaRuota(stat(i,1))& Chr(9)& FormatSpace(stat(i,2),2,1)&_
Chr(9)& FormatSpace(stat(i,3),5,1)& Chr(9)& FormatSpace(stat(i,4),7,1)&space(4) &_
Chr(9)& FormatSpace(stat(i,5),5,1)& Chr(9)& FormatSpace(stat(i,6),7,1)
Next
Scrivi Chr(10)&" RitCronR = da quante Estrazioni non esce sulla Ruota di riferimento, almeno un max rit. su tutte"
Scrivi " RitSfR = da quanti sfaldamenti non esce sulla Ruota di riferimento, almeno un max rit. su tt"
Scrivi : ColoreTesto 0
'-----------------------------------------------------------------------------------------
Scrivi Chr(10)& " DETTAGLIO DEI RITARDI CRONOLOGICI SU RUOTA (STORICI)" & Chr(10),1
Redim dati(co1) ' vettore temporaneo su cui carico i ritardi da ordinare
If co1>10 Then z= 10 Else z= co1
For r= 1 To 10
Scrivi " "& SiglaRuota(r)& " ",0,0
For c= 1 To co1 : dati(c)=sto1(r,c) : Next
OrdinaMatrice dati,-1
riga=""
For i= 1 To z
riga=riga& FormatSpace(dati(i),4,1)
Next
Scrivi riga
Next
Scrivi
'-----------------------------------------------------------------------------------------
Scrivi Chr(10)& " DETTAGLIO DEI RITARDI DI SFALDAMENTO SU RUOTA (STORICI)" & Chr(10),1
Redim dati(co1) ' vettore temporaneo su cui carico i ritardi da ordinare
If co1>10 Then z= 10 Else z= co1
For r= 1 To 10
Scrivi " "& SiglaRuota(r)& " ",0,0
For c= 1 To co1 : dati(c)=sto2(r,c) : Next
OrdinaMatrice dati,-1
riga=""
For i= 1 To z
riga=riga& FormatSpace(dati(i),4,1)
Next
Scrivi riga
Next
End Sub