Novità

primo step programmatori

genios

Advanced Member >PLATINUM<
Lo script in questione calcola gli ultimi ritardi del numero 90 su una data ruota a scelta . Vorrei che i ritardi trovati vengano scritti anziché in out in una matrice .Naturalmente la matrice dovrà essere una matrice dinamica per il motivo che non sappiamo quanti ritardi troveremo . Come fare ?

Codice:
Sub Main()
   '===========ricerca di un AMBO_ ruota di milano==========
   Dim ru,ruota,n1
   n1 = 90
   ruota = InputBox("Inserisci il numero della ruota ")
   ru = ruota ' RUOTA DI RICERCA
   fin = EstrazioneFin
   ini = 9500
   rit = - 1
   For es = fin To ini Step - 1 ' scorri all'indietro l'archivio
      rit = rit + 1' ad ogni estrazione incrementa di uno il ritardo
      ' se tra gli estratti trovi il n1
      If n1 = Estratto(es,ru,1)Or n1 = Estratto(es,ru,2) Or n1 = Estratto(es,ru,3) Or n1 = Estratto(es,ru,4)Or n1 = Estratto(es,ru,5) Then
         Scrivi(rit)
         rit = 0
      End If
   Next
End Sub
 

genios

Advanced Member >PLATINUM<
i legend ho dato uno sguardo non ho capito molto potresti farmi un esempio ?

grazie Ciao Eugenio
 

i legend

Premium Member
Eugenio non ho il pc con me.
Ci sono esempi nei test
Dim aN(1)
An(1)= 1
Redim aRit(0),aIdEstr(0)
Dim aR(1)
Ar(1)=1
Dim ini,fin
Ini=estrazioneFin-499
Fin=estrazioneFIN
Call elencoRitarditurbo( QUI METTI I PARAMETRI)
non ricordo l ordine
Dim i
For i =1 ti ubound (aRit)
Scrivi aRit(i)&" "&aidestr(i)
Next
Dovrebbe restituire gli ultimi ritardi delle ultime 500 estrazioni dell 1 su bari
Guarda bene perché a memoria potrei sbagliare.
Questo è tutto l aiuto che riesco a darti.
Ciao :)
 

i legend

Premium Member
Se scrivi la funzione con i parametri interni è fatta.
Postarla qui se non riesci, non ricordo l ordine
Ma hai inizio fine ruota numero e gli array che raccolgono i dati se manca qualcosa la ricaviamo.
 

genios

Advanced Member >PLATINUM<
Ho fatto vari tentativi mi da errore .
Codice:
Option Explicit
Sub Main
   Dim aN(1)
   aN(1) = 1
   ReDim aRit(0),aIdEstr(0)
   Dim aR(1)
   aR(1) = 1
   Dim ini,fin
   ini = EstrazioneFin - 499
   fin = EstrazioneFin
   Call ElencoRitardiTurbo(aN,aR,1,ini,fin,,aRit) '( QUI METTI i PARAMETRI)
   'non ricordo l ordine
   Dim i
   For i = 1 To UBound(aR)
      Scrivi aRit(i) & " " & aIdEstr(i)
   Next
End Sub

Parametri

aNumeriVettore contenente i numeri
aRtArray contenente le ruote su cui va eseguita l'analisi (le ruote vengono considerate unite)
SorteValore numerico che identifica la sorte (o la classe)
InizioRange inizio
FineRange Fine
aRetRitardiTorna un vettore contenente i ritardi parte dall'indice 1
aRetIdEStrTorna un vettore contenente gli id delle estrazioni alle quali corrisponde il ritardo presente nel vettore aRetRitardi
Optional idArchivio = 0Identificativo dell'archivio da usare
 

genios

Advanced Member >PLATINUM<
For i = 1 To UBound(aRit) ho cambiato la variabile aRit con la variabile aRi perche mi restituiva solo un valore .


Option Explicit
Sub Main
Dim aN(1)
aN(1) = 1
ReDim aRit(0),aIdEstr(0)
Dim aR(1)
aR(1) = 1
Dim ini,fin
ini = EstrazioneFin - 499
fin = EstrazioneFin
Call ElencoRitardiTurbo(aN,aR,1,ini,fin,aRit,aIdEstr) '( QUI METTI i PARAMETRI)
'non ricordo l ordine
Dim i
For i = 1 To UBound(aRit)
Scrivi aRit(i) & " " & aIdEstr(i)
Next
End Sub

quindi ora tutti i valori di ciascun ritardo sono memorizzati nella variabile aRit ?
 

i legend

Premium Member
For i = 1 To UBound(aRit) ho cambiato la variabile aRit con la variabile aRi perche mi restituiva solo un valore .


Option Explicit
Sub Main
Dim aN(1)
aN(1) = 1
ReDim aRit(0),aIdEstr(0)
Dim aR(1)
aR(1) = 1
Dim ini,fin
ini = EstrazioneFin - 499
fin = EstrazioneFin
Call ElencoRitardiTurbo(aN,aR,1,ini,fin,aRit,aIdEstr) '( QUI METTI i PARAMETRI)
'non ricordo l ordine
Dim i
For i = 1 To UBound(aRit)
Scrivi aRit(i) & " " & aIdEstr(i)
Next
End Sub

quindi ora tutti i valori di ciascun ritardo sono memorizzati nella variabile aRit ?
Non esiste la variabile aRi
Non so se lo script funzioni , non lo posso testare senza pc.
Se funziona nel vettore aRit sono elencati gli ultimi ritardi del numero nel range estrazioni da te scelto.
Su statistica formazioneveloce se adegui il range ,la ruota e il numero ti compaiono i ritardi e li può confrontare. Se non coincidono c e un errore.
Ciao ora ho un impegno. A domani :)
 

genios

Advanced Member >PLATINUM<
questo restituisce un solo valore

Questo il tuo script
Option Explicit
Sub Main
Dim aN(1)
aN(1) = 1
ReDim aRit(0),aIdEstr(0)
Dim aR(1)
aR(1) = 1
Dim ini,fin
ini = EstrazioneFin - 499
fin = EstrazioneFin
Call ElencoRitardiTurbo(aN,aR,1,ini,fin,,aRit) '( QUI METTI i PARAMETRI)
'non ricordo l ordine
Dim i
For i = 1 To UBound(aR)
Scrivi aRit(i) & " " & aIdEstr(i)
Next
End Sub

questo dove ho modificato la variabile aR con aRit questo funziona

Option Explicit
Sub Main
Dim aN(1)
aN(1) = 1
ReDim aRit(0),aIdEstr(0)
Dim aR(1)
aR(1) = 1
Dim ini,fin
ini = EstrazioneFin - 499
fin = EstrazioneFin
Call ElencoRitardiTurbo(aN,aR,1,ini,fin,aRit,aIdEstr) '( QUI METTI i PARAMETRI)
'non ricordo l ordine
Dim i
For i = 1 To UBound(aRit)
Scrivi aRit(i) & " " & aIdEstr(i)
Next
End Sub

ora al di la dei ritardi che abbiamo in out gli stessi sono memorizzati nella variabile aRit(i) ?
 

i legend

Premium Member
Eugenio non ho il pc con me.
Ci sono esempi nei test
Dim aN(1)
An(1)= 1
Redim aRit(0),aIdEstr(0)
Dim aR(1)
Ar(1)=1
Dim ini,fin
Ini=estrazioneFin-499
Fin=estrazioneFIN
Call elencoRitarditurbo( QUI METTI I PARAMETRI)
non ricordo l ordine
Dim i
For i =1 ti ubound (aRit)
Scrivi aRit(i)&" "&aidestr(i)
Next
Dovrebbe restituire gli ultimi ritardi delle ultime 500 estrazioni dell 1 su bari
Guarda bene perché a memoria potrei sbagliare.
Questo è tutto l aiuto che riesco a darti.
Ciao :)
Eugenio come dicevo non ricordavo l ordine dei parametri , a parte il ti al posto del to correzione automatica del cell il ciclo è fatto su aRit
Vai al post originale .
Ho fatto vari tentativi mi da errore .
Codice:
Option Explicit
Sub Main
   Dim aN(1)
   aN(1) = 1
   ReDim aRit(0),aIdEstr(0)
   Dim aR(1)
   aR(1) = 1
   Dim ini,fin
   ini = EstrazioneFin - 499
   fin = EstrazioneFin
   Call ElencoRitardiTurbo(aN,aR,1,ini,fin,,aRit) '( QUI METTI i PARAMETRI)
   'non ricordo l ordine
   Dim i
   For i = 1 To UBound(aR)
      Scrivi aRit(i) & " " & aIdEstr(i)
   Next
End Sub

Parametri

aNumeriVettore contenente i numeri
aRtArray contenente le ruote su cui va eseguita l'analisi (le ruote vengono considerate unite)
SorteValore numerico che identifica la sorte (o la classe)
InizioRange inizio
FineRange Fine
aRetRitardiTorna un vettore contenente i ritardi parte dall'indice 1
aRetIdEStrTorna un vettore contenente gli id delle estrazioni alle quali corrisponde il ritardo presente nel vettore aRetRitardi
Optional idArchivio = 0Identificativo dell'archivio da usare
La variabile aR l hai scritta tu.
Ma a prescindere dagli errori di battitura ,spero di esserti stato utile. Ciao
 

genios

Advanced Member >PLATINUM<
Si mi sei stato utile ma sono al punto di partenza del POST #1 i valori dei ritardi trovati vanno messi in una matrice per poi essere manipolati .
 

genios

Advanced Member >PLATINUM<
ma forse gia cè la matrice è forse questa aRit(i) ed il numero indice inizia da 1 come da help di spaziometria.
 

genios

Advanced Member >PLATINUM<
Ci sono arrivato l' array è aRit(i) ora come faccio per leggerlo in modo che in out abbia il

aRit(1) aRit(2) aRit(3)

aRit(2) aRit(3) aRit(4)
aRit(3) aRit(4) aRit(5)

aRit(4) aRit(5) aRit(6)
aRit(5) aRit(6) aRit(7) e cosi via fino ad UBound(aRit)

immagino con dei cicli for sulla variabile i


Questi sono i ritardi sulla ruota di BA in un certo intervallo di estrazioni del n-1.JPG
 

genios

Advanced Member >PLATINUM<
Con i tre cicli for sull array aRit mi da errore variabile di controllo del ciclo for non valida

Codice:
Option Explicit
Sub Main
   Dim aN(1)
   aN(1) = 1
   ReDim aRit(0),aIdEstr(0)
   Dim aR(1)
   aR(1) = 1
   Dim ini,fin
   ini = EstrazioneFin - 499
   fin = EstrazioneFin
   Call ElencoRitardiTurbo(aN,aR,1,ini,fin,aRit,aIdEstr) '( QUI METTI i PARAMETRI)
   'non ricordo l ordine
   Dim i
   For i = 1 To UBound(aRit)
      For i = 2 To UBound(aRit)
         For i = 3 To UBound(aRit)
            Scrivi aRit(i) '& " " & aIdEstr(i)
         Next
      Next
   Next
End Sub
 

druid

Super Member >PLATINUM<
Ciao genios,
se non ricordo male, nei cicli annidati, e' il ciclo piu' interno che viene "risolto" per primo, ergo l' array aRit e' gia' arrivato "diciamo" a fine corsa e pertanto da' errore.
Ciao
 

i legend

Premium Member
For i =1 ti ubound (arit) -2
For j = i+1 to ubound( arit)-1
For x = j+1 ti ubound ( arit)
Scrivi il tuo codice
Next '×
Next ' j
Next ' i
Ciao :)
 

joe

Advanced Member >PLATINUM PLUS<
Eugenio ...

... facendo così, ci sono voluti una ventina di messaggi

per non sapere (ancora) cosa si deve fare.

Se tu descrivessi il progetto ... sarebbe meglio.

E' evidente che se intendi fare un qualcosa ... e non si sa cosa sia,

risulta particolarmente difficile scrivere un algoritmo in grado di

elaborare quel "qualcosa" sconosciuto.

:)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 26 marzo 2024
    Bari
    30
    51
    17
    01
    53
    Cagliari
    13
    70
    25
    68
    47
    Firenze
    28
    30
    54
    70
    88
    Genova
    67
    87
    22
    03
    62
    Milano
    22
    34
    13
    47
    24
    Napoli
    20
    72
    59
    01
    52
    Palermo
    05
    72
    65
    52
    32
    Roma
    28
    43
    75
    54
    87
    Torino
    16
    08
    17
    24
    38
    Venezia
    67
    28
    55
    60
    29
    Nazionale
    15
    69
    22
    63
    39
    Estrazione Simbolotto
    Firenze
    44
    09
    31
    22
    16
Alto