Novità

da decine naturali a decine a passo 7

genios

Advanced Member >PLATINUM<
Con che posso sostituire il codice di ricerca delle decine naturali scritto sotto

Codice:
For i = 1 To 90
    If DecinaNaturale(i) = dec Then
        co = co + 1
        numeri(co) = i
    End If
Next

per trovare il gruppo delle decine a passo 7


07 14 21 28 35 42 49 56 63 70
77 84 01 08 15 22 29 36 43 50
57 64 71 78 85 02 09 16 23 30
37 44 51 58 65 72 79 86 03 10
17 24 31 38 45 52 59 66 73 80
87 04 11 18 25 32 39 46 53 60
67 74 81 88 05 12 19 26 33 40
47 54 61 68 75 82 89 06 13 20
27 34 41 48 55 62 69 76 83 90

Ciao Eugenio
 
ciao genios se non vuoi sforzarti a trovare una formula matematica che ti permetta di stabilire
a quale delle lunghette appartiene il numero puoi sempre fare un funzione che testa la presenza di un numero in una stringa.
tu hai 9 stringhe , in ognuna di queste devi cercare il numero tal dei tali , dato che ogni numero è presente una sola volta appena lo trovi sai in quale stringa lo hai trovato e quindi sai a quale delle 9 lunghette appartiene.
questo esempio va completato oppure puo offrirti uno spunto se lo scopo era fare uan funzioen simile a Decina.

Codice:
Option Explicit
Sub Main
    Dim n
    
    
    n = 28
    
    Scrivi "Il numero " & n & " appartiene alla lunghetta numero " &  GetNumeroLunghetta(  n)
      
    
End Sub

Function GetNumeroLunghetta( Numero )
    ' instr ritorna la posizione del primo carattere
    ' di una stringa all'interno di un altra
    ' noi cerchiamo la stringa sNum nella stringa sStringaNum
    
    ' N.B. Per evitare falsi positivi è importante che sia al stringa dei numeri sia il numero
    ' cercato abbiano sempre i numeri formattati a 2 caratteri
    ' il parametro Numero viene formattato automaticamente
    ' la stringa invece è di responsabilita esterna
    
    Dim k , nRet
    ReDim aLunghette(9)
    aLunghette(1) = "07 14 21 28 35 42 49 56 63 70"
    aLunghette(2) = "77 84 01 08 15 22 29 36 43 50"
    
    nRet =0
    
     For k = 1 To 9
    
        If InStr(aLunghette(k),Format2(Numero ))>0 Then
            nRet = k
            Exit For    
        End If
    Next
    
    GetNumeroLunghetta  = nRet
End Function
 
Quindi LuigiB dovrei all' interno dello script sostituire questa parte di codice :

Codice:
 For i = 1 To 90     If DecinaNaturale(i) = dec Then         co = co + 1         numeri(co) = i     End If Next

Con la funzione che hai postato tu che gira al di fuori della Sub main principale. Come si richiama tale funzione all' interno dello script ?

Ciao Eugenio



Codice:
Function GetNumeroLunghetta( Numero )
    ' instr ritorna la posizione del primo carattere
    ' di una stringa all'interno di un altra
    ' noi cerchiamo la stringa sNum nella stringa sStringaNum
    
    ' N.B. Per evitare falsi positivi è importante che sia al stringa dei numeri sia il numero
    ' cercato abbiano sempre i numeri formattati a 2 caratteri
    ' il parametro Numero viene formattato automaticamente
    ' la stringa invece è di responsabilita esterna
    
    Dim k , nRet
    ReDim aLunghette(9)
    aLunghette(1) = "07 14 21 28 35 42 49 56 63 70"
    aLunghette(2) = "77 84 01 08 15 22 29 36 43 50"
    aLunghette(3) = "57 64 71 78 85 02 09 16 23 30"
    aLunghette(4) = "37 44 51 58 65 72 79 86 03 10"
    aLunghette(5) = "17 24 31 38 45 52 59 66 73 80"
    aLunghette(6) = "87 04 11 18 25 32 39 46 53 60"
    aLunghette(7) = "67 74 81 88 05 12 19 26 33 40"
    aLunghette(8) = "47 54 61 68 75 82 89 06 13 20"
    aLunghette(9) = "27 34 41 48 55 62 69 76 83 90" 
    
    nRet =0
    
     For k = 1 To 9
    
        If InStr(aLunghette(k),Format2(Numero ))>0 Then
            nRet = k
            Exit For    
        End If
    Next
    
    GetNumeroLunghetta  = nRet
End Function
 
genios;n1890591 ha scritto:
Con che posso sostituire il codice di ricerca delle decine naturali scritto sotto

Codice:
For i = 1 To 90
If DecinaNaturale(i) = dec Then
co = co + 1
numeri(co) = i
End If
Next

per trovare il gruppo delle decine a passo 7


07 14 21 28 35 42 49 56 63 70
77 84 01 08 15 22 29 36 43 50
57 64 71 78 85 02 09 16 23 30
37 44 51 58 65 72 79 86 03 10
17 24 31 38 45 52 59 66 73 80
87 04 11 18 25 32 39 46 53 60
67 74 81 88 05 12 19 26 33 40
47 54 61 68 75 82 89 06 13 20
27 34 41 48 55 62 69 76 83 90

Ciao Eugenio



Ciao Eugenio, se può esserti utile :

Codice:
Option Explicit
Sub Main
    Dim n,co
    For n = 1 To 90
        co = co + 7
        Scrivi Format2(Fuori90(co)) & " ",0,0,5
        If Cadenza(n) = 0 Then Scrivi
    Next
End Sub
:)
 
ciao Surmang , è vero che ottieni tutti i numeri a passo sette come + vero che non si tratta di una funzione simile a quella che voleva implementare Genios.
Facendo l'analogia col codice postato da genios al primo messaggio serve una funzione che riceva un numero e restituisca la decine (composta di numeri a passo 7) a cui appartiene ..
 
Grazie Surmang il tuo script fa quasi quello che vorrei ma dato che devo inserirlo in uno script in cui l' inputbox attuale mi fa scegliere la decina naturale su cui fare la ricerca non so come cambiare quella parte di codice che mi faccia scegliere una delle 9 decine a passo 7 . Sotto la parte di codice che dovrei modificare ciao Eugenio

Codice:
Dim dec,ruota,i,co,n,a,rt
Dim numeri(10),ruote(1)
ruote(1) = InputBox("Quale ruota vuoi analizzare?",,1)
dec = InputBox("Quale decina naturale vuoi analizzare?",,6)

ruota = CInt(ruote(1)) : dec = CInt(dec)
For i = 1 To 90
    If DecinaNaturale(i) = dec Then
        co = co + 1
        numeri(co) = i
    End If
Next
 
Ultima modifica:
LuigiB;n1890910 ha scritto:
ciao Surmang , è vero che ottieni tutti i numeri a passo sette come + vero che non si tratta di una funzione simile a quella che voleva implementare Genios.
Facendo l'analogia col codice postato da genios al primo messaggio serve una funzione che riceva un numero e restituisca la decine (composta di numeri a passo 7) a cui appartiene ..

Ciao Luigi, Grazie,
ma consapevole della mia ignoranza, avevo premesso :"se può risultarti utile "!


:)
 
Ultima modifica:
genios;n1890914 ha scritto:
Grazie Surmang il tuo script fa quasi quello che vorrei ma dato che devo inserirlo in uno script in cui l' inputbox attuale mi fa scegliere la decina naturale su cui fare la ricerca non so come cambiare quella parte di codice che mi faccia scegliere una delle 9 decine a passo 7 . Sotto la parte di codice che dovrei modificare ciao Eugenio


Ciao Eugenio, Grazie, scusami ma non sono capace di risolvere il problema,
conviene seguire le indicazioni di LuigiB che è un fenomeno in materia di codice.

:)
 
LuigiB non riesco proprio ad inserire la tua funzione sulle decine a passo sette nello script sotto pubblicato . Se hai voglia e tempo dagli uno sguardo .

Ciao Eugenio


Codice:
Option Explicit


Sub Main()

'Questo listato fa la ricerca dei ritardi consecutivi
'della Decina naturale 6 (cioe' la 51 60 )



Dim dec,ruota,i,co,n,a,rt
Dim numeri(10),ruote(1)
ruote(1) = InputBox("Quale ruota vuoi analizzare?",,1)
dec = InputBox("Quale decina naturale vuoi analizzare?",,6)

ruota = CInt(ruote(1)) : dec = CInt(dec)
For i = 1 To 90
    If DecinaNaturale(i) = dec Then
        co = co + 1
        numeri(co) = i
    End If
Next

Scrivi NomeRuota(ruota),1

For n = EstrazioneFin - 6000 To EstrazioneFin
Messaggio n
a = SerieFreq(n,n,numeri,ruote,1)

    If a > 1 Then
        rt = SerieRitardo(n - 1000,n - 1,numeri,ruote,2)'Questa è roba mia
        ColoreTesto 0'.............................""......"".....""
        If rt < 10 Then ColoreTesto 2'................""......"".....""
        If rt > 18 Then ColoreTesto 1 '................""......"".....""
                Scrivi DataEstrazione(n) & " " & StringaEstratti(n,ruota) & " " & " & Ritardo: " & Format2(rt)
    End If

    If n = EstrazioneFin Then
        Scrivi " RITARDO ATTUALE: " & SerieRitardo(n - 1000,n,numeri,ruote,2)
    End If
Next     
End Sub
 
Ciao Eugenio, in attesa delle brillanti soluzioni dei mostri sacri dello script,
mi sono divertito a provare a modificare il tuo script , vedi se può servire a qualcosa.
:)




Codice:
Option Explicit
Sub Main()
 Dim dec,ruota,i,co,n,a,rt,c
 Dim numeri(10),ruote(1)
 ruote(1) = InputBox("Quale ruota vuoi analizzare?",,1)
 dec = InputBox("Quale decina naturale vuoi analizzare?",,6)
 ruota = CInt(ruote(1)) : dec = CInt(dec)
 
 
 For i = 1 To 90
  If myDecina(i) = dec Then
   co = co + 1
   numeri(co) = i
  End If
 Next
 
 Scrivi NomeRuota(ruota),1
 Scrivi "Ritardi Decina " & dec & "  (con passo 7) :  ",0,1,5
 Scrivi
 For n = EstrazioneFin - 539 To EstrazioneFin
  Messaggio n
  a = SerieFreq(n,n,numeri,ruote,1)
  If a > 1 Then
   rt = SerieRitardo(n - 1000,n - 1,numeri,ruote,2)'Questa è roba mia
   ColoreTesto 0'.............................""......"".....""
   If rt < 10 Then ColoreTesto 2'................""......"".....""
   If rt > 18 Then ColoreTesto 1 '................""......"".....""
   Scrivi DataEstrazione(n) & " " & StringaEstratti(n,ruota) & " & Ritardo: " & Format2(rt)
  End If
  If n = EstrazioneFin Then
        Scrivi " RITARDO ATTUALE: " & SerieRitardo(n - 1000,n,numeri,ruote,2)
    End If

 Next
End Sub

Function myDecina(i)
 Dim n,co,c
 c = 1
 For n = 1 To 90
  co = co + 7
  If i = Fuori90(co)Then myDecina = c
  If Cadenza(n) = 0 Then c = c + 1
 Next
End Function
 
Gira ma fa la ricerca sulla la decina
4.11.18.25.32.39.46.53.60.87 invece di ricercare l' ambo sulla 07 14 21 28 35 42 49 56 63 70 ciao Eugenio
 
genios;n1891202 ha scritto:
Gira ma fa la ricerca sulla la decina
4.11.18.25.32.39.46.53.60.87 invece di ricercare l' ambo sulla 07 14 21 28 35 42 49 56 63 70 ciao Eugenio

Se vuoi ricercare l'ambo nella prima decina a passo 7 devi inserire 1 nell'input box dove ti chiede quale decina vuoi analizzare, devi sostiture :InputBox("Quale decina naturale vuoi analizzare?",,6) sostituire con :InputBox("Quale decina a passo 7 vuoi analizzare?",,1)
Spero di non aver detto qualche cavolata per la fretta, vi rileggo stanotte .ciao :)
Codice:
Bari
Ritardi Decina 1  (con passo 7) : 

22.12.2011 72.26.13.70.14 & Ritardo: 09
14.01.2012 14.70.56.36.50 & Ritardo: 09
18.02.2012 28.35.55.52.53 & Ritardo: 14
10.03.2012 38.70.14.78.42 & Ritardo: 08
24.03.2012 18.51.63.14.87 & Ritardo: 05
12.04.2012 71.75.56.49.70 & Ritardo: 07
21.04.2012 28.64.07.06.49 & Ritardo: 03
10.05.2012 56.81.28.74.83 & Ritardo: 07
31.05.2012 58.45.33.49.14 & Ritardo: 08
16.06.2012 21.45.07.28.80 & Ritardo: 06
26.06.2012 40.49.35.26.39 & Ritardo: 03
07.07.2012 49.57.35.74.22 & Ritardo: 04
02.08.2012 05.66.14.49.78 & Ritardo: 10
04.08.2012 42.49.90.08.21 & Ritardo: 00
06.09.2012 44.62.74.70.49 & Ritardo: 13
27.10.2012 82.56.77.49.69 & Ritardo: 21
03.11.2012 28.07.55.62.58 & Ritardo: 02
27.11.2012 14.28.59.42.67 & Ritardo: 09
15.01.2013 49.32.47.10.35 & Ritardo: 20
24.01.2013 76.68.84.07.42 & Ritardo: 03
16.02.2013 49.35.32.76.13 & Ritardo: 09
19.02.2013 17.34.22.21.35 & Ritardo: 00
02.03.2013 44.61.07.72.63 & Ritardo: 04
23.04.2013 18.20.49.28.67 & Ritardo: 21
02.05.2013 26.69.35.21.50 & Ritardo: 03
11.05.2013 89.22.21.57.63 & Ritardo: 03
02.07.2013 66.07.81.49.50 & Ritardo: 21
25.07.2013 71.21.63.17.42 & Ritardo: 09
17.08.2013 47.56.07.74.58 & Ritardo: 09
14.09.2013 52.02.42.15.49 & Ritardo: 11
01.10.2013 31.42.66.16.07 & Ritardo: 06
29.10.2013 23.14.29.49.70 & Ritardo: 11
12.11.2013 06.21.41.31.63 & Ritardo: 05
10.12.2013 75.14.49.44.80 & Ritardo: 11
25.01.2014 76.66.14.68.63 & Ritardo: 19
18.02.2014 49.62.07.60.61 & Ritardo: 09
19.06.2014 47.42.56.45.54 & Ritardo: 51
26.06.2014 74.26.63.56.23 & Ritardo: 02
01.07.2014 86.35.29.70.22 & Ritardo: 01
06.09.2014 73.07.36.35.22 & Ritardo: 28
09.09.2014 29.86.21.28.05 & Ritardo: 00
18.10.2014 63.67.48.39.14 & Ritardo: 16
04.11.2014 05.02.49.35.39 & Ritardo: 06
30.12.2014 28.56.21.85.67 & Ritardo: 23
10.02.2015 06.88.07.56.49 & Ritardo: 17
28.02.2015 35.42.52.87.47 & Ritardo: 07
09.04.2015 56.37.35.61.79 & Ritardo: 16
23.04.2015 35.48.42.15.37 & Ritardo: 05
12.05.2015 70.26.35.38.68 & Ritardo: 07
21.05.2015 64.56.20.21.23 & Ritardo: 03
 RITARDO ATTUALE: 4
 
Surmang grazie il tuo script sembra girare bene o aggiunto stringa numeri per avere conferma della decina . Si puo aggiungere dopo la decina i numeri appartenenti alla stessa che sono usciti ?

Ciao Eugenio


Codice:
Option Explicit
Sub Main()
Dim dec,ruota,i,co,n,a,rt,c
Dim numeri(10),ruote(1)
ruote(1) = InputBox("Quale ruota vuoi analizzare?",,1)
dec = InputBox("Quale decina a passo 7 vuoi analizzare?",,1)
ruota = CInt(ruote(1)) : dec = CInt(dec)


For i = 1 To 90
If myDecina(i) = dec Then
co = co + 1
numeri(co) = i
End If
Next

Scrivi NomeRuota(ruota),1
Scrivi "Ritardi Decina " & dec & " (con passo 7) : ",0,1,5
Scrivi
For n = EstrazioneFin - 6000 To EstrazioneFin
Messaggio n
a = SerieFreq(n,n,numeri,ruote,1)
If a > 1 Then
rt = SerieRitardo(n - 1000,n - 1,numeri,ruote,2)'Questa è roba mia
ColoreTesto 0'.............................""......"".....""
If rt < 10 Then ColoreTesto 2'................""......"".....""
If rt > 18 Then ColoreTesto 1 '................""......"".....""
Scrivi DataEstrazione(n) & " " & StringaEstratti(n,ruota) & " & Ritardo: " & Format2(rt) & " " & StringaNumeri(numeri)
End If
If n = EstrazioneFin Then
Scrivi " RITARDO ATTUALE: " & SerieRitardo(n - 1000,n,numeri,ruote,2)
End If

Next
End Sub

Function myDecina(i)
Dim n,co,c
c = 1
For n = 1 To 90
co = co + 7
If i = Fuori90(co)Then myDecina = c
If Cadenza(n) = 0 Then c = c + 1
Next
End Function
 
Ultima modifica:
genios;n1891811 ha scritto:
Surmang grazie il tuo script sembra girare bene o aggiunto stringa numeri per avere conferma della decina . Si puo aggiungere dopo la decina i numeri appartenenti alla stessa che sono usciti ?

Ciao Eugenio

Eugenio, lo script è tuo , io ho solo aggiunto la function !
ciao

Codice:
Option Explicit
Sub Main()
 Dim dec,ruota,i,co,n,a,rt,c,p,x
 Dim numeri(10),ruote(1)
 
 ruote(1) = InputBox("Quale ruota vuoi analizzare?",,1)
 dec = InputBox("Quale decina a passo 7 vuoi analizzare?",,1)
 ruota = CInt(ruote(1)) : dec = CInt(dec)
 
 
 Scrivi NomeRuota(ruota)&" Ritardi ambo decina passo 7 [id " & dec&"]      ",1,0
 For i = 1 To 90
  If myDecina(i) = dec Then
   co = co + 1
   numeri(co) = i
  
  
  
  End If
 Next
 Scrivi StringaNumeri(numeri),1
 Scrivi
 
 For n = EstrazioneFin - 6000 To EstrazioneFin
  Messaggio n
  a = SerieFreq(n,n,numeri,ruote,1)
  If a > 1 Then
  ReDim nuPres(5)
  For p = 1 To 5
   For x = 1 To 10
    
     If numeri(x) = Estratto(n,ruota,p) Then nuPres(p)= numeri(x)
    Next
   Next
   rt = SerieRitardo(n - 1000,n - 1,numeri,ruote,2)'Questa è roba mia
   ColoreTesto 0'.............................""......"".....""
   If rt < 10 Then ColoreTesto 2'................""......"".....""
   If rt > 18 Then ColoreTesto 1 '................""......"".....""
   Scrivi DataEstrazione(n) & " " & StringaEstratti(n,ruota) & " & Ritardo: " & Format2(rt) & "      " & StringaNumeri(nuPres)
  End If
  If n = EstrazioneFin Then
   Scrivi " RITARDO ATTUALE: " & SerieRitardo(n - 1000,n,numeri,ruote,2)
  End If
 Next
End Sub
Function myDecina(i)
 Dim n,co,c
 c = 1
 For n = 1 To 90
  co = co + 7
  If i = Fuori90(co)Then myDecina = c
  If Cadenza(n) = 0 Then c = c + 1
 Next
End Function

si può fare meglio , ma sono solo un aspirante principiante :D


W il buonumore
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 21 gennaio 2025
    Bari
    78
    09
    70
    03
    23
    Cagliari
    32
    88
    30
    13
    45
    Firenze
    87
    23
    15
    39
    86
    Genova
    71
    48
    67
    59
    23
    Milano
    58
    50
    80
    85
    29
    Napoli
    90
    81
    79
    82
    62
    Palermo
    70
    33
    90
    05
    10
    Roma
    15
    71
    55
    85
    76
    Torino
    89
    09
    18
    33
    69
    Venezia
    44
    80
    82
    73
    58
    Nazionale
    80
    25
    13
    63
    17
    Estrazione Simbolotto
    Bari
    39
    36
    34
    14
    31
Indietro
Alto