SUPER LOTTO

Aiuto per modifica script

« Older   Newer »
  Share  
pfca
CAT_IMG Posted on 9/6/2011, 14:50




Buongiorno a tutti,
cerco di apprendere il linguaggio script provando a modificare dei listati scaricati dalla rete. Ho la seguente difficoltà nella seguente modifica:
Il listato che posto parzialmente, causa non conoscenza dell'autore, prevede di cercare i numeri maggiormente usciti dopo le spie che con ciclo
for..next iniziano dall'1 e terminano al 90.
Io cercavo di fare la seguente modifica, analizzare solo i cinque ultimi numeri estratti nella ruota scelta.
Questo è parte del codice:
CODICE
For sp = 1 To 90
       Messaggio " Spia: " & sp
       For i = 1 To 90
               num(i,1) = 0 : num(i,2) = 0
       Next
       co = 0
       For es = ini To fin
               If Posizione(es,r,sp) > 0 Then
                       co = co + 1
                       ess = es + colpi + 1
                       If ess > fin Then ess = fin End If
                       For a = es + 1 To ess        
                               For v = 1 To 90
                               uscito(v,2) = 0
                               Next                        
                               For e = 1 To 5
                                       n = Estratto(a,r,e)
                                       num(n,1) = n
                                       num(n,2) = num(n,2) + 1
                                       uscito(n,1) = n
                                       uscito(n,2) = uscito(n,2) + 1
                                       If uscito(n,2) > 1 Then
                                               num(n,2) = num(n,2) - 1
                                               uscito(n,2) = 1
                                       End If
                               Next                        
                       Next
               End If
       Next

Ho cercato di sostituire sp con
Dim sp(5)
for num = 1 to 5
sp(num) = Estratto(EstrazioneFin,ruota,num)
ma purtroppo non funziona.
Ringrazio chi può aiutarmi a capire.
Francesco
 
Top
claudiolotto
CAT_IMG Posted on 13/6/2011, 18:12




Innanzitutto non credo che postare un listato trovato sul web senza l'autore sia vietato.
Io ti consiglio di fare cose più semplici prima di imbatterti in una cosa più complicata per cui ti consiglio (scusa il ciclo for .... la ripetizione) di moltiplicare lo script x i 5 estratti che cerchi con inputbox di una l'estrazione-base "es_base" quindi
For sp = estratto(es_base,r,1) To estratto(es_base,r,1) primo script, alla fine di questo ciclo prima dell' end if di chiusura dello script ripeti il For sp = estratto(es_base,r,2) To estratto(es_base,r,2), ed il restante listato, sino all'ultimo For sp = estratto(es_base,r,5) To estratto(es_base,r,5) ed il finale end if.

Ti ritrovera con 5 output che analizzano quanto desideri e ti danno i risultati.

CODICE
Analisi dal 14.09.1946 ad oggi
Primi 10 più frequenti usciti dopo il numero Spia entro i 10 colpi
_________________________________________________________________
Numero spia: 35 su Bari       casi = 241   colpi 10

Num.   48   3    18   20   40   37   78   84   75   22  
Freq. 180  174  174  173  172  171  170  170  169  165  
_________________________________________________________________
Numero spia: 29 su Bari       casi = 225   colpi 10

Num.   48   30   58   60   34   55   9    40   32   85  
Freq. 174  174  168  164  163  162  157  156  156  155  
_________________________________________________________________
Numero spia: 63 su Bari       casi = 237   colpi 10

Num.   4    40   78   12   48   88   66   15   85   5    
Freq. 188  182  180  179  178  175  175  173  167  166  
_________________________________________________________________
Numero spia: 48 su Bari       casi = 293   colpi 10

Num.   48   51   3    40   59   12   85   39   88   2    
Freq. 230  218  217  214  212  207  205  204  204  203  
_________________________________________________________________
Numero spia: 12 su Bari       casi = 262   colpi 10

Num.   78   75   59   67   85   82   34   62   60   40  
Freq. 208  195  194  194  188  187  186  185  185  182


La somma delle varie presenze dei singoli numeri la dovrai fare a mano.

Diversamente lo script dovrà essere composto da matrici diverse atte a contenere i dati base che strada facendo verranno elaborati e infine da queste dovrai estrapolarne i totali.
Saluti
 
Top
pfca
CAT_IMG Posted on 13/6/2011, 18:50




Grazie Claudiolotto,
proverò a modificare come da te indicato e ti farò sapere.
Francesco
 
Top
pfca
CAT_IMG Posted on 14/6/2011, 10:30




Buongiorno Claudio,
ho fatto come da te consigliato è naturalmente funziona,
se fosse possibile, mi puoi dare una spiegazione del perchè se io scrivo:
For f = 1 to 5
For sp = Estratto(fin,r,f) To Estratto(fin,r,f)
...... tutto il resto sino al
Next
Next
non funziona?
Ti ringrazio per il tuo consiglio,
Francesco
 
Top
CAT_IMG Posted on 14/6/2011, 11:14
Avatar

A nessuno è mai nociuto essere stato zitto.--Catone

Group:
Administrator
Posts:
9,992

Status:


Claudiolotto non è vietato postare gli script se lo trovi senza autore pazienza
ma se l'autore c'è e nello scrip è presente va da sè che è meglio lasciarlo.
Queste persone si prestano a fare queste cose in modo gratuito e ci aiutano
nelle nostre ricerche in questo modo perchè negare la loro opera,che è frutto
di impegno e passione.
E' altamente sgradevole vedere altri che cancellando il loro nome si appropriano
del listato come se fosse prodotto del loro cervello.( non è questo il caso)
Io non ci capisco nulla ma penso che non sia facile farli e quindi un riconoscimento
và dovuto,mantenendo almeno il nome dell'autore.
 
Web   Top
pfca
CAT_IMG Posted on 14/6/2011, 12:05




Condivido il tuo pensiero plutone, però tu capisci che se non è scritto l'autore, e poi qualcuno dice che è suo, potrei avere
problemi. Comunque stai tranquillo che se è presente lo si lascia.
francesco
 
Top
claudiolotto
CAT_IMG Posted on 14/6/2011, 14:36





X Plutone



Hai perfettamente ragione.

CITAZIONE (pfca @ 14/6/2011, 11:30) 
Buongiorno Claudio,
ho fatto come da te consigliato è naturalmente funziona,
se fosse possibile, mi puoi dare una spiegazione del perchè se io scrivo:
For f = 1 to 5
For sp = Estratto(fin,r,f) To Estratto(fin,r,f)
...... tutto il resto sino al
Next
Next
non funziona?
Ti ringrazio per il tuo consiglio,
Francesco

Non ti posso aiutare se non posti il listato. Non aver paura a postarlo, male che vada, se l'autore si lamenta, capiremo chi lo ha scritto e lo annoteremo sul post.
 
Top
pfca
CAT_IMG Posted on 14/6/2011, 19:10




Ciao claudio,
ti posto lo script dopo la modifica in base alle tue indicazioni,
ho ripetuto per cinque volte il codice.
CODICE
Sub Main()
       Dim ruote(1)
       Dim posta(1)
       Dim num(90,2)
       Dim uscito(90,2)
       Dim f(5)
       r = InputBox("Su quale ruota?",,1)
       colpi = InputBox("Quanti colpi?",,10)
       ruote(1) = r
       ini = InputBox("Quante estrazioni vuoi controllare?",,500)
       fin = EstrazioneFin
       Scrivi " Analisi dal " & DataEstrazione(ini) & " ad oggi"
       Scrivi "Primi 10 più frequenti usciti dopo il numero Spia entro i " & colpi & " colpi",1
       
       'Qui pensavo di inserire il ciclo che ti avevo scritto
       'For f = 1 to 5
     'For sp = Estratto (fin,r,f) To Estratto (fin,r,f)
       
       For sp = Estratto(fin,r,1) To Estratto(fin,r,1)
               Messaggio " Spia: " & sp  
               For i = 1 To 90
                       num(i,1) = 0
                       num(i,2) = 0
               Next
               co = 0
               For es = ini To fin
                       If Posizione(es,r,sp) > 0 Then
                               co = co + 1
                               ess = es + colpi + 1
                               If ess > fin Then ess = fin End If
                               For a = es + 1 To ess
                                       For v = 1 To 90
                                               uscito(v,2) = 0
                                       Next
                                       For e = 1 To 5
                                               n = Estratto(a,r,e)
                                               num(n,1) = n
                                               num(n,2) = num(n,2) + 1
                                               uscito(n,1) = n
                                               uscito(n,2) = uscito(n,2) + 1
                                               If uscito(n,2) > 1 Then
                                                       num(n,2) = num(n,2) - 1
                                                       uscito(n,2) = 1
                                               End If
                                       Next
                               Next
                       End If
               Next
               OrdinaMatrice num,- 1,2
               per = Int((co/100)*65)
               Scrivi "_________________________________________________________________"
               Scrivi "Numero spia: " & sp & " su " & FormatSpace(NomeRuota(r),10) & " casi = " & co & " colpi " & colpi
               Scrivi
               riga = "Num.   "
               riga1 = "Freq.  "
               For i = 1 To 10
                       riga = riga & FormatSpace(num(i,1),3) & "  "
                       riga1 = riga1 & FormatSpace(Eval(num(i,2)),4) & " "
               Next
               Scrivi riga,1
               ColoreTesto 2
               Scrivi riga1
               ColoreTesto 0
       Next
       For sp = Estratto(fin,r,2) To Estratto(fin,r,2)
               Messaggio " Spia: " & sp
               For i = 1 To 90
                       num(i,1) = 0
                       num(i,2) = 0
               Next
               co = 0
               For es = ini To fin
                       If Posizione(es,r,sp) > 0 Then
                               co = co + 1
                               ess = es + colpi + 1
                               If ess > fin Then ess = fin End If
                               For a = es + 1 To ess
                                       For v = 1 To 90
                                               uscito(v,2) = 0
                                       Next
                                       For e = 1 To 5
                                               n = Estratto(a,r,e)
                                               num(n,1) = n
                                               num(n,2) = num(n,2) + 1
                                               uscito(n,1) = n
                                               uscito(n,2) = uscito(n,2) + 1
                                               If uscito(n,2) > 1 Then
                                                       num(n,2) = num(n,2) - 1
                                                       uscito(n,2) = 1
                                               End If
                                       Next
                               Next
                       End If
               Next
               OrdinaMatrice num,- 1,2
               per = Int((co/100)*65)
               Scrivi "_________________________________________________________________"
               Scrivi "Numero spia: " & sp & " su " & FormatSpace(NomeRuota(r),10) & " casi = " & co & " colpi " & colpi
               Scrivi
               riga = "Num.   "
               riga1 = "Freq.  "
               For i = 1 To 10
                       riga = riga & FormatSpace(num(i,1),3) & "  "
                       riga1 = riga1 & FormatSpace(Eval(num(i,2)),4) & " "
               Next
               Scrivi riga,1
               ColoreTesto 2
               Scrivi riga1
               ColoreTesto 0
       Next
       For sp = Estratto(fin,r,3) To Estratto(fin,r,3)
               Messaggio " Spia: " & sp
               For i = 1 To 90
                       num(i,1) = 0
                       num(i,2) = 0
               Next
               co = 0
               For es = ini To fin
                       If Posizione(es,r,sp) > 0 Then
                               co = co + 1
                               ess = es + colpi + 1
                               If ess > fin Then ess = fin End If
                               For a = es + 1 To ess
                                       For v = 1 To 90
                                               uscito(v,2) = 0
                                       Next
                                       For e = 1 To 5
                                               n = Estratto(a,r,e)
                                               num(n,1) = n
                                               num(n,2) = num(n,2) + 1
                                               uscito(n,1) = n
                                               uscito(n,2) = uscito(n,2) + 1
                                               If uscito(n,2) > 1 Then
                                                       num(n,2) = num(n,2) - 1
                                                       uscito(n,2) = 1
                                               End If
                                       Next
                               Next
                       End If
               Next
               OrdinaMatrice num,- 1,2
               per = Int((co/100)*65)
               Scrivi "_________________________________________________________________"
               Scrivi "Numero spia: " & sp & " su " & FormatSpace(NomeRuota(r),10) & " casi = " & co & " colpi " & colpi
               Scrivi
               riga = "Num.   "
               riga1 = "Freq.  "
               For i = 1 To 10
                       riga = riga & FormatSpace(num(i,1),3) & "  "
                       riga1 = riga1 & FormatSpace(Eval(num(i,2)),4) & " "
               Next
               Scrivi riga,1
               ColoreTesto 2
               Scrivi riga1
               ColoreTesto 0
       Next
       For sp = Estratto(fin,r,4) To Estratto(fin,r,4)
               Messaggio " Spia: " & sp
               For i = 1 To 90
                       num(i,1) = 0
                       num(i,2) = 0
               Next
               co = 0
               For es = ini To fin
                       If Posizione(es,r,sp) > 0 Then
                               co = co + 1
                               ess = es + colpi + 1
                               If ess > fin Then ess = fin End If
                               For a = es + 1 To ess
                                       For v = 1 To 90
                                               uscito(v,2) = 0
                                       Next
                                       For e = 1 To 5
                                               n = Estratto(a,r,e)
                                               num(n,1) = n
                                               num(n,2) = num(n,2) + 1
                                               uscito(n,1) = n
                                               uscito(n,2) = uscito(n,2) + 1
                                               If uscito(n,2) > 1 Then
                                                       num(n,2) = num(n,2) - 1
                                                       uscito(n,2) = 1
                                               End If
                                       Next
                               Next
                       End If
               Next
               OrdinaMatrice num,- 1,2
               per = Int((co/100)*65)
               Scrivi "_________________________________________________________________"
               Scrivi "Numero spia: " & sp & " su " & FormatSpace(NomeRuota(r),10) & " casi = " & co & " colpi " & colpi
               Scrivi
               riga = "Num.   "
               riga1 = "Freq.  "
               For i = 1 To 10
                       riga = riga & FormatSpace(num(i,1),3) & "  "
                       riga1 = riga1 & FormatSpace(Eval(num(i,2)),4) & " "
               Next
               Scrivi riga,1
               ColoreTesto 2
               Scrivi riga1
               ColoreTesto 0
       Next
       For sp = Estratto(fin,r,5) To Estratto(fin,r,5)
               Messaggio " Spia: " & sp
               For i = 1 To 90
                       num(i,1) = 0
                       num(i,2) = 0
               Next
               co = 0
               For es = ini To fin
                       If Posizione(es,r,sp) > 0 Then
                               co = co + 1
                               ess = es + colpi + 1
                               If ess > fin Then ess = fin End If
                               For a = es + 1 To ess
                                       For v = 1 To 90
                                               uscito(v,2) = 0
                                       Next
                                       For e = 1 To 5
                                               n = Estratto(a,r,e)
                                               num(n,1) = n
                                               num(n,2) = num(n,2) + 1
                                               uscito(n,1) = n
                                               uscito(n,2) = uscito(n,2) + 1
                                               If uscito(n,2) > 1 Then
                                                       num(n,2) = num(n,2) - 1
                                                       uscito(n,2) = 1
                                               End If
                                       Next
                               Next
                       End If
               Next
               OrdinaMatrice num,- 1,2
               per = Int((co/100)*65)
               Scrivi "_________________________________________________________________"
               Scrivi "Numero spia: " & sp & " su " & FormatSpace(NomeRuota(r),10) & " casi = " & co & " colpi " & colpi
               Scrivi
               riga = "Num.   "
               riga1 = "Freq.  "
               For i = 1 To 10
                       riga = riga & FormatSpace(num(i,1),3) & "  "
                       riga1 = riga1 & FormatSpace(Eval(num(i,2)),4) & " "
               Next
               Scrivi riga,1
               ColoreTesto 2
               Scrivi riga1
               ColoreTesto 0
       Next
End Sub

In base alla mia richiesta originale, pensavo di far fare il ciclo
con il For....Next dei cinque estratti come commentato nel listato.
Grazie per l'indicazione e dell'aiuto che mi hai dato.
Francesco
 
Top
pfca
CAT_IMG Posted on 14/6/2011, 21:01




Sono riuscito a far fare il ciclo sui 5 estratti come chiedevo.
Questo è il risultato:
CODICE
Sub Main()
       Dim ruote(1)
       Dim posta(1)
       Dim num(90,2)
       Dim uscito(90,2)
       r = InputBox("Su quale ruota?",,1)
       colpi = InputBox("Quanti colpi?",,10)
       ruote(1) = r
       ini = InputBox("Quante estrazioni vuoi controllare?",,500)
       fin = EstrazioneFin
       Scrivi " Analisi dal " & DataEstrazione(ini) & " ad oggi"
       Scrivi "Primi 10 più frequenti usciti dopo il numero Spia entro i " & colpi & " colpi",1
       For f = 1 To 5
       For sp = Estratto(fin,r,f) To Estratto(fin,r,f)
               Messaggio " Spia: " & sp
               For i = 1 To 90
                       num(i,1) = 0
                       num(i,2) = 0
               Next
               co = 0
               For es = ini To fin
                       If Posizione(es,r,sp) > 0 Then
                               co = co + 1
                               ess = es + colpi + 1
                               If ess > fin Then ess = fin End If
                               For a = es + 1 To ess
                                       For v = 1 To 90
                                               uscito(v,2) = 0
                                       Next
                                       For e = 1 To 5
                                               n = Estratto(a,r,e)
                                               num(n,1) = n
                                               num(n,2) = num(n,2) + 1
                                               uscito(n,1) = n
                                               uscito(n,2) = uscito(n,2) + 1
                                               If uscito(n,2) > 1 Then
                                                       num(n,2) = num(n,2) - 1
                                                       uscito(n,2) = 1
                                               End If
                                       Next
                               Next
                       End If
               Next
               OrdinaMatrice num,- 1,2
               per = Int((co/100)*65)
               Scrivi "_________________________________________________________________"
               Scrivi "Numero spia: " & sp & " su " & FormatSpace(NomeRuota(r),10) & " casi = " & co & " colpi " & colpi
               Scrivi
               riga = "Num.   "
               riga1 = "Freq.  "
               For i = 1 To 10
                       riga = riga & FormatSpace(num(i,1),3) & "  "
                       riga1 = riga1 & FormatSpace(Eval(num(i,2)),4) & " "
               Next
               Scrivi riga,1
               ColoreTesto 2
               Scrivi riga1
               ColoreTesto 0
       Next
       Next
       
End Sub

Per claudio:
se non ti crea difficoltà, presto ti chiederò altro aiuto.
Grazie
Francesco
 
Top
claudiolotto
CAT_IMG Posted on 15/6/2011, 08:20




x pfca

No problem, tempo permettendo, comunque vedo che alpplicandoti ci arrivi.

Come te la cavi con excel e visual basic ?
Ciao
 
Top
pfca
CAT_IMG Posted on 15/6/2011, 16:39




Ciao Claudio,
con Excel bene, Visul basic mai affrontato.
Le conoscenze che ho di Vba Excel sono buone.
Francesco
 
Top
claudiolotto
CAT_IMG Posted on 16/6/2011, 07:09




Bene, era solo x info.
Ciao
 
Top
11 replies since 9/6/2011, 14:50   352 views
  Share