Const COLPI = 9 Public Ruota(2) Public Numeri(90) Public GlobalFreq(90) Public Ambi(90,90) Public TotCasi,CasiNeg Dim varList() Dim varData() Dim varRuote1() Dim varRuote2() Public StatAmbi(9),StatAmbiTutte(9),StatAmbate(9) Function Isotopo(estrazione,video) 'trova numero Isotopo uscito soltanto su due ruote e restituisce il numero Isotopo = 0 For b = 1 To 5 For r1 = 1 To 9 num1 = Estratto(estrazione,r1,b) num1 = CInt(num1) For r2 = r1 + 1 To 10 num2 = Estratto(estrazione,r2,b) num2 = CInt(num2) If num1 = num2 Then trovati = 0 For c = 1 To 10 If Estratto(estrazione,c,b) = num1 Then trovati = trovati + 1 Next If trovati = 2 Then If video = 1 Then ColoreTesto 2 Scrivi "AMBATA ISOTOPA " & Format2(num1) & " rilevata sulle ruote di " & Left(NomeRuota(r1),2) & _ "-" & Left(NomeRuota(r2),2) & "(" & DataEstrazione(estrazione) & ")",True Scrivi ColoreTesto 0 End If Isotopo = num1 Exit Function End If End If Next Next Next End Function Function NumSpiaIso(estrazione,numero) 'controlla se il numero spia è Isotopo e restituisce le due ruote NumSpiaIso = 0 Ruota(1) = 0 Ruota(2) = 0 For b = 1 To 5 For r1 = 1 To 9 num1 = Estratto(estrazione,r1,b) For r2 = r1 + 1 To 10 num2 = Estratto(estrazione,r2,b) If num1 = num2 Then trovati = 0 For c = 1 To 10 If Estratto(estrazione,c,b) = num1 Then trovati = trovati + 1 Next If trovati = 2 And num1 = numero Then TotCasi = TotCasi + 1 ReDim Preserve varList(TotCasi) ReDim Preserve varData(TotCasi) ReDim Preserve varRuote1(TotCasi) ReDim Preserve varRuote2(TotCasi) varRuote1(TotCasi) = r1 varRuote2(TotCasi) = r2 varData(TotCasi) = estrazione varList(TotCasi) = DataEstrazione(estrazione) & "" '---------------------------------------------------------------------------------------- 'ATTENZIONE QUESTA SOTTO E' UNA RIGA UNICA, SE SI PRESENTA SU' DUE, RIUNITELA !!!!!!! varList(TotCasi) = varList(TotCasi) & "[" & Left(NomeRuota(r1),2) & "-" & Left(NomeRuota(r2),2) & "]" '---------------------------------------------------------------------------------------- NumSpiaIso = num1 Ruota(1) = r1 Ruota(2) = r2 Exit Function End If End If Next Next Next End Function Function PiuFrequenti(inizio) Dim totfreq(90) For a = inizio To inizio +(COLPI - 1) For b = 1 To 5 num = Estratto(a,Ruota(1),b) totfreq(num) = totfreq(num) + 1 num = Estratto(a,Ruota(2),b) totfreq(num) = totfreq(num) + 1 Next Next For c1 = 1 To 90 If totfreq(c1) > 0 Then Numeri(c1) = Numeri(c1) + 1 GlobalFreq(c1) = GlobalFreq(c1) + totfreq(c1) Next End Function Function FreqAmbi(inizio) For a = inizio To inizio +(COLPI - 1) For b = 1 To 5 num1 = Estratto(a,Ruota(1),b) For c = 1 To 5 num2 = Estratto(a,Ruota(1),c) Ambi(num1,num2) = Ambi(num1,num2) + 1 Next Next For b = 1 To 5 num1 = Estratto(a,Ruota(2),b) For c = 1 To 5 num2 = Estratto(a,Ruota(2),c) Ambi(num1,num2) = Ambi(num1,num2) + 1 Next Next Next End Function Function AmbateUscite(inizio,condizione,num) Dim a,b,numest1,numest2 AmbateUscite = 0 For a = inizio To inizio +(COLPI - 1) For b = 1 To 5 numest1 = Estratto(a,varRuote1(condizione),b) numest2 = Estratto(a,varRuote2(condizione),b) If num = numest1 Then Scrivi "Ambata " & num & " " & Left(NomeRuota(varRuote1(condizione)),2) & _ " (" & a - inizio + 1 & "ºc)" AmbateUscite = AmbateUscite + 1 StatAmbate(a - inizio + 1) = StatAmbate(a - inizio + 1) + 1 End If If num = numest2 Then Scrivi "Ambata " & num & " " & Left(NomeRuota(varRuote2(condizione)),2) & _ " (" & a - inizio + 1 & "ºc)" AmbateUscite = AmbateUscite + 1 StatAmbate(a - inizio + 1) = StatAmbate(a - inizio + 1) + 1 End If Next Next If AmbateUscite = 0 Then Scrivi "Negativo" CasiNeg = CasiNeg + 1 End If End Function Function AmbiUsciti(inizio,condizione,num1,num2) Dim a,b,numest1,numest2,esatti,esatti2 AmbiUsciti = 0 For a = inizio To inizio +(COLPI - 1) esatti = 0 esatti2 = 0 For b = 1 To 5 numest1 = Estratto(a,varRuote1(condizione),b) numest2 = Estratto(a,varRuote2(condizione),b) If num1 = numest1 Or num2 = numest1 Then esatti = esatti + 1 If num1 = numest2 Or num2 = numest2 Then esatti2 = esatti2 + 1 Next If esatti = 2 Then Scrivi "Ambo " & num1 & "." & num2 & " " & Left(NomeRuota(varRuote1(condizione)),2) & _ " (" & a - inizio + 1 & "ºc)" AmbiUsciti = AmbiUsciti + 1 StatAmbi(a - inizio + 1) = StatAmbi(a - inizio + 1) + 1 End If If esatti2 = 2 Then Scrivi "Ambo " & num1 & "." & num2 & " " & Left(NomeRuota(varRuote2(condizione)),2) & _ " (" & a - inizio + 1 & "ºc)" AmbiUsciti = AmbiUsciti + 1 StatAmbi(a - inizio + 1) = StatAmbi(a - inizio + 1) + 1 End If Next End Function Function AmbiUscitiTutte(inizio,casi,num1,num2) Dim a,b,r,numest,esatti AmbiUscitiTutte = 0 For r = 1 To 10 For a = inizio To inizio +(COLPI - 1) esatti = 0 For b = 1 To 5 numest = Estratto(a,r,b) If num1 = numest Or num2 = numest Then esatti = esatti + 1 Next If esatti = 2 And r <> varRuote1(casi) And r <> varRuote2(casi) Then Scrivi "Ambo Tutte " & num1 & "." & num2 & " " & Left(NomeRuota(r),2) & _ " (" & a - inizio + 1 & "ºc)" AmbiUscitiTutte = AmbiUscitiTutte + 1 StatAmbiTutte(a - inizio + 1) = StatAmbiTutte(a - inizio + 1) + 1 End If Next Next End Function Sub Main() Dim a,b,a1,c1,sel,pregresse,num Dim max ReDim varList(1) ReDim varData(1) ReDim varRuote1(1) ReDim varRuote2(1) TotCasi = 0 CasiNeg = 0 spia = - 1 num = 0 Do While spia < 0 Or spia > 90 sel = InputBox("Digita <0> se vuoi trovare il num. spia in automatico," & _ " altrimenti digita <1..90>") spia = CInt(sel) Loop If spia = 0 Then a = 0 Do While a < 3000 Or a > EstrazioneFin sel = InputBox("Trova il numero spia nell'estrazione (3000-" & EstrazioneFin & ")") a = CInt(sel) Loop End If pregresse = 0 Do While pregresse < 100 Or pregresse > 2000 sel = InputBox("Su quante estrazioni pregresse vuoi fare il controllo (100-2000)?") pregresse = CInt(sel) Loop If spia = 0 Then num = Isotopo(a,1) If num = 0 Then Exit Sub Else a = EstrazioneFin Do While num <> spia num = Isotopo(a,0) a = a - 1 If a < 3000 Then Exit Sub Loop a = a + 1 num = Isotopo(a,1) End If For b = a - pregresse To a - COLPI If NumSpiaIso(b,num) > 0 Then Call PiuFrequenti(b + 1) Call FreqAmbi(b + 1) End If Next presenti = 0 For c1 = TotCasi To 1 Step - 1 ambate = 0 max = 0 For c2 = 1 To 90 If Numeri(c2) = c1 Then presenti = 1 If GlobalFreq(c2) > max Then ambate = c2 max = GlobalFreq(c2) End If End If Next If presenti = 1 Then Exit For Next max = 0 ambonum1 = 0 ambonum2 = 0 For a1 = 1 To 90 If a1 <> ambate Then If Ambi(ambate,a1) > max Then max = Ambi(ambate,a1) ambonum1 = ambate ambonum2 = a1 End If End If Next ColoreTesto 0 Scrivi "Ambata da mettere in gioco" & ambate Scrivi "Ambo da mettere in gioco su ruote e tutte " & ambate & "." & ambonum2 Scrivi ColoreTesto 1 Scrivi "VERIFICA DELLE CONDIZIONI E ESITI OTTENUTI" Scrivi String(41,"-") & Return ColoreTesto 0 For c1 = 1 To TotCasi ColoreTesto 2 Scrivi varList(c1) ColoreTesto 0 Call AmbateUscite(varData(c1) + 1,c1,ambate) Call AmbiUsciti(varData(c1) + 1,c1,ambate,ambonum2) Call AmbiUscitiTutte(varData(c1) + 1,c1,ambate,ambonum2) Scrivi Next Scrivi ColoreTesto 1 Scrivi "RIEPILOGO STATISTICO E RISULTATI" Scrivi String(31,"-") ColoreTesto 0 Scrivi "Casi Totali " & TotCasi Scrivi "Casi Negativi " & CasiNeg StatTotAmbate = 0 StatTotAmbi = 0 StatTotAmbiTutte = 0 Scrivi "Colpi Ambate Ambi Ambi a tutte" For a = 1 To 9 Scrivi a & " " & Format2(StatAmbate(a)) & " " & Format2(StatAmbi(a)) & " " & Format2(StatAmbiTutte(a)) StatTotAmbate = StatTotAmbate + StatAmbate(a) StatTotAmbi = StatTotAmbi + StatAmbi(a) StatTotAmbiTutte = StatTotAmbitutte + StatAmbiTutte(a) Next ColoreTesto 1 Scrivi String(31,"-") Scrivi "TOT " & Format2(StatTotAmbate) & " " & Format2(StatTotAmbi) & " " & Format2(StatTotAmbiTutte) End Sub |
|