Novità

Joe91 come faccio

Con il tuo input ci sono arrivato cosi' :

Codice:
Sub Main()
 Dim nm(10)
 d=6
 co=0
 For i = 1 To 90
 If DecinaNaturale(i) = d Then co = co + 1 : nm(co) = i

 Next
 Scrivi " Decina Naturale " & d & "[" & StringaNumeri(nm) & "]",1
 End Sub

Pero' vorrei capire la motivazione .

Ciao Eugenio
 
genios;n2045727 ha scritto:
Ouroboros potresti farlo usando la funzione DecinaNaturale .Voglio capire dove sbaglio .

Ciao Eugenio

Ciao genios, allora se vuoi usare la suddetta funzione:

Codice:
Sub Main()
 Dim nm(10)
 For d = 0 To 8
 co=0
 For i = 1 To 90
 If DecinaNaturale(i) = d Then
 co = co + 1
 nm(co) = i
 End If
 Next
 Scrivi " Decina Naturale " & d & "[" & StringaNumeri(nm) & "]",1
 Next
End Sub

Ciao
 
BENE.

ANZI BENISSIMO!!!

Lo script viene normalmente eseguito di linea in linea (dall'alto al basso)

ed ogni linea viene letta da sinistra a destra.

Come leggiamo ... noi.

Quindi se, su una linea ci sono più istruzioni ...

... esse vengono lette ed eseguite "con precedenza"

su ogni altra parte dello script.

Sono eseguite le istruzioni presenti nella linea che si sta considerrando.

Allora ribadisco:

Se si svrive: IF ... THEN "QUALCOSA" ... in una unica linea ...

se il test condizionale ha come risultato "Vero" viene eseguito quel "qualcosa"

scritto in quella linea ... E ... in quella stessa linea termina il "Then"

"End If" al termine di quella linea è sottinteso.

Anche se "End If" non è scritto, viene eseguito lo stesso.

TUTTO quanto presente nelle linee precedenti e successive E' ESTERNO

ESTRANEO, FUORI dal test condizionale.

IF "Test = True" Then "Qualche Istruzione" (: End If) inizia e termina in una linea.

:)
 
Sempre un po’ rudimentale . In out ho tutte le estrazioni divise per cicli di 9 estrazioni per la ruota di BA nella Variabile Numeri ho i numeri da cercare in ciascuno dei cicli di 9 estrazioni . Ora quello che voglio fare e cercare all’ interno di ogni ciclo di 9 estrazioni quanti numeri della decina composta dai numeri 1 2 3 4 5 6 7 8 9 10 sono presenti all’ interno del ciclo .
Quindi immagino debba inserire all’ interno del ciclo secondario delle istruzioni che mi facciano il confronto tra i numeri della decina e i numeri dell’ estrazioni . Correggimi se sbaglio .

Ciao Eugenio
Codice:
Option Explicit

Sub Main

Dim P,I,F 'Primario / Inizio / Fine

Dim N ' Ciclo -Enne- Estrazioni

Dim S 'Secondario

Dim E 'Estrazione 

Dim NUMERI(10)

Dim r 

r=BA_

For N=1 To 10

NUMERI(N)=N  

Scrivi NUMERI (N) & "",0,0
Next 
Scrivi  
Scrivi r
'DATI :

I = 3862 'Inizio Principale

F = EstrazioneFin 'Fine Primcipale

N = 9 'Numero di estrazioni per ciclo

For P = I To F Step 9 'Ciclo principaleI=z
For S = 0 To N - 1 'Ciclo Secondario

 E = P + S 'Estrazione nel ciclo

 Scrivi E  & "  " & DataEstrazione (E) & "  " & StringaEstratti (E,r) 
Next

Scrivi 'Acapo ogni ciclo

Next

End Sub
 
Ciao Eugenio.

Premesso che lo script è un frutto dell'ingenio o è un opera

intelletuale che, in quanto tale appartiene a chi lo elabora.

Quindi se è giusta per lui è giusta a prescindere dall'opinione che

un eventuale "terzo" ... ne può avere.

Pur in assenza dello script ... sembra giusto quanto scrivi.

Ma questo potrà esserlo (o non) sia in funzione della ricerca che si voleva effettuare ...

sia dalle soluzioni adottate, sia dall'esatta implementazione dello script.

Per esempio per me sono sbagliate le decine, che i cicli ...

... figuriamoci come potrà essere uno script che li contempli

entrambi contemporaneamente.

Comunque si, prova. Descrivi la ricerca ed il suo intento.

Poi, sia il modo di redigerlo che la sintassi per convertirlo in codice si trovano.

:) Buon WeekEnd a tutte/i.
 
Quello che vorrei fare e trovare quale sia stato il max ritardo ( espresso in cicli di 9 estrazioni) di 7 presenze dei numeri della decina naturale 0 su una ruota e quale sia il ritardo attuale espresso sempre in cicli .
Spero di essermi spiegato bene .

Ciao Eugenio

Codice:
 12345678910  
 1  
 3862  05.01.1945  87.34.[COLOR=#FF0000]01[/COLOR].59.50  
 3863  13.01.1945  [COLOR=#FF0000]06[/COLOR].66.[COLOR=#FF0000]01[/COLOR].16.48  
 3864  20.01.1945  38.14.24.78.36  
 3865  27.01.1945  49.30.87.15.65  
 3866  03.02.1945  30.64.36.[COLOR=#FF0000]05[/COLOR].32  
 3867  10.02.1945  15.36.37.86.31  
 3868  17.02.1945  86.78.69[COLOR=#FF0000].07[/COLOR].60  
 3869  24.02.1945  83.[COLOR=#FF0000]07[/COLOR].72.88.19  
 3870  03.03.1945  47.20.77.73.30  

 Ciclo 1 6 presenze  

 3871  10.03.1945  20.24.48.16.33  
 3872  17.03.1945  77.35.23.[COLOR=#FF0000]10[/COLOR].86  
 3873  24.03.1945  83.33.37.24.54  
 3874  31.03.1945  87.22.[COLOR=#FF0000]04[/COLOR].46.78  
 3875  07.04.1945  88.[COLOR=#FF0000]06[/COLOR].60.28.21  
 3876  14.04.1945  21.50.30.67.82  
 3877  21.04.1945  88.28.[COLOR=#FF0000]05[/COLOR].22.35  
 3878  28.04.1945  27.50.37.30.25  
 3879  05.05.1945  37.19.53.21.15  

 Ciclo 2 4 presenze  


 3880  12.05.1945  17.22.63.62.85  
 3881  19.05.1945  46.84.40.17.16  
 3882  26.05.1945  37.84.[COLOR=#FF0000]01[/COLOR].68.[COLOR=#FF0000]10[/COLOR]  
 3883  02.06.1945  72.50.87.41.67  
 3884  09.06.1945  66.30.89.57.48  
 3885  16.06.1945  29.27.35.75.36  
 3886  23.06.1945  [COLOR=#FF0000]02[/COLOR].72.[COLOR=#FF0000]09.01[/COLOR].55  
 3887  30.06.1945  33.89.17.40.64  
 3888  07.07.1945  70.90.63.26.54  

 Ciclo 3 5 presenze  

 3889  14.07.1945  36.19.51.43.61  
 3890  21.07.1945  [COLOR=#FF0000]10[/COLOR].61.20.44.84  
 3891  28.07.1945  [COLOR=#FF0000]02[/COLOR].41.43.65.87  
 3892  04.08.1945  27.74.21.16.41  
 3893  11.08.1945  22[COLOR=#FF0000].06[/COLOR].14.50.84  
 3894  18.08.1945  71.31.13.21.85  
 3895  25.08.1945  63.[COLOR=#FF0000]06[/COLOR].72.[COLOR=#FF0000]03[/COLOR].62  
 3896  01.09.1945  [COLOR=#FF0000]05.01[/COLOR].[COLOR=#FF0000]04[/COLOR].25.79  
 3897  08.09.1945  46.45.[COLOR=#FF0000]07[/COLOR].74.04  

 Ciclo 4 9 presenze
 
Ok ... hai già i conteggi delle presenze nei cicli ... (6/4/5/9)

Se ho inteso bene i primi tre fanno ritardo ... mentre il quarto che ne ha 9

lo consideri "positivo" perchè supera (o uguaglia) il riferimento 7.

:)
 
Ok ... hai già i conteggi delle presenze nei cicli ... (6/4/5/9)
No Joe non ho i conteggi delle presenze per ciclo le ho fatte visualmente sull' uscita del mio script.
Se ho inteso bene i primi tre fanno ritardo ... mentre il quarto che ne ha 9

lo consideri "positivo" perchè supera (o uguaglia) il riferimento 7.

lo consideriamo positivo se supera le 7 presenze in 9 estrazioni .
 
Ciao Eugenio...

E' evidente che tra le molte soluzioni possibili,

stai impostando lo script su quella che prevede il livello

più basso di evoluzione Basic.

Quindi sara quella, più compatibile.

Ma è anche quello che richiede più codice.

Pur essendo più semplice.

Quindi prima di vedere altre soluzioni con istruzioni più "potenti" ...

stiamo a quello che hai tracciato.

Hai:

Una ruota

un array con i numeri della decina,

e gli estratti di quella ruota.

Supponendo di essere già arrivati all'estrazione

... ci si trova al punto di dover confrontare

ogni estratto con ogni numero della decina/lunghetta ...

per conteggiare quanti sono i numeri caduti e/o presenti.

Lo script utilizzato quale base è quello già presente al mesaggio 25

ed il risultato voluto è "il conteggio"

che hai descritto/colorato "manualmente"

al messaggio #27.

Giusto?
 
preliminarmente ... Ho modificato leggermente lo script

per avere disponibili gli Estratti "uno ad uno".

E' semplice intuire che il prossimo passaggio sarà

quello di redigere un test condizionale su ognuno degli Estratti.

Naturalmente, poi si dovranno conteggare i risultati di questo confronto.

Ma procediamo per piccoli passaggi.

Codice:
Option Explicit
Sub Main
	Dim P,I,F 'Primario / Inizio / Fine
	Dim N ' Ciclo -Enne- Estrazioni
	Dim S 'Secondario
	Dim E 'Estrazione
	Dim NUMERI(10)
	Dim Ruota
	Dim L
	Dim Pos
	Ruota = BA_
	Scrivi NomeRuota(Ruota) & ": ",0,0
	For N = 1 To 10
		NUMERI(N) = N
	Next
	Scrivi StringaNumeri(NUMERI,,True)
	Scrivi
	'DATI :
	I = 3862 'Inizio Principale
	F = 3897 'Fine Principale
	N = 9 'Numero di estrazioni per ciclo
	For P = I To F Step 9 'Ciclo principaleI=z
		For S = 0 To N - 1 'Ciclo Secondario
			E = P + S 'Estrazione nel ciclo
			Scrivi E & "  " & DataEstrazione(E) & "  ",0,0
			For Pos = 1 To 5 'leggo gli estratti uno ad uno
				L = Estratto(E,Ruota,Pos) '' 
				Scrivi Format2(L) & " ",0,0 ''' Li Scrivo singolarmente
			Next
			Scrivi
		Next
		Scrivi 'Acapo ogni ciclo
	Next
End Sub

:)
 
Chiudo i messaggi di questa sera

con con uno script capace di clonare l'output che Eugenio aveva creato manualmente.

Il test condizionale con il quale si verifica

se l' Rstratto appartiene alla decina ...

è la nuova parte del programma

ed è dove si sommeranno e conteggeranno i totali delle cadute.

Codice:
Option Explicit
Sub Main
Dim P,I,F 'Primario / Inizio / Fine
Dim N ' Ciclo -Enne- Estrazioni
Dim S 'Secondario
Dim E 'Estrazione
Dim NUMERI(10)
Dim Ruota
Dim L
Dim Pos
Dim Q
Dim Bold
Ruota = BA_
Scrivi NomeRuota(Ruota) & ": ",0,0
For N = 1 To 10
NUMERI(N) = N
Next
Scrivi StringaNumeri(NUMERI,,True)
Scrivi
'DATI :
I = 3862 'Inizio Principale
F = 3897 'Fine Principale
N = 9 'Numero di estrazioni per ciclo
For P = I To F Step 9 'Ciclo principaleI=z
For S = 0 To N - 1 'Ciclo Secondario
E = P + S 'Estrazione nel ciclo
Scrivi E & "  " & DataEstrazione(E) & "  ",0,0
For Pos = 1 To 5 'leggo gli estratti uno ad uno
L = Estratto(E,Ruota,Pos) ''
For Q = 1 To 10
If NUMERI(Q) = L Then
ColoreTesto 2 : Bold = True
End If
Next
Scrivi Format2(L),Bold,0 ''' Li Scrivo singolarmente
ColoreTesto 0 : Bold = False
If Pos < 5 Then Scrivi ".",False,False
Next
Scrivi
Next
Scrivi 'Acapo ogni ciclo
Next
End Sub
 
Joe da errore in queste righe . E' forse un errore di copia incolla ?


Codice:
 Scrivi NomeRuota(Ruota) & ": ",0,0 Scrivi E & "  " & DataEstrazione(E) & "  ",0,0 If Pos < 5 Then Scrivi ".",False,False

Ho risolto cosi' non so se va bene .

Codice:
Option Explicit
Sub Main
Dim P,I,F 'Primario / Inizio / Fine
Dim N ' Ciclo -Enne- Estrazioni
Dim S 'Secondario
Dim E 'Estrazione
Dim NUMERI(10)
Dim Ruota
Dim L
Dim Pos
Dim Q
Dim Bold
Ruota = BA_
Scrivi NomeRuota(Ruota) &" ",0,0
For N = 1 To 10
NUMERI(N) = N
Next
Scrivi StringaNumeri(NUMERI,,True)
Scrivi
'DATI :
I = 3862 'Inizio Principale
F = 3897 'Fine Principale
N = 9 'Numero di estrazioni per ciclo
For P = I To F Step 9 'Ciclo principaleI=z
For S = 0 To N - 1 'Ciclo Secondario
E = P + S 'Estrazione nel ciclo
Scrivi E &"  " &DataEstrazione(E) & "  ",0,0
For Pos = 1 To 5 'leggo gli estratti uno ad uno
L = Estratto(E,Ruota,Pos) ''
For Q = 1 To 10
If NUMERI(Q) = L Then
ColoreTesto 2 : Bold = True
End If
Next
Scrivi Format2(L),Bold,0 ''' Li Scrivo singolarmente
ColoreTesto 0 : Bold = False
If Pos=5 Then Scrivi ".",False,False
Next
Scrivi
Next
Scrivi 'Acapo ogni ciclo
Next
End Sub
 
Fin qui ci siamo . Ora occorre mettere penso un contatore che si incrementi ad ogni presenza di un numero della decina in questione ad ogni estrazione per tutto il ciclo di 9 estrazioni .
 
Joe allego diagramma di flusso per la ricerca di un numero della decina nella prima estrazione del ciclo di 9 estrazioni .Dimmi se puo' andare .
Ciao Eugenio

diagramma di flusso presenze in un estrazione delle 9 del ciclo.jpg
 
Ciao Eugenio,

Non conosco i diagrammi di flusso ...

perlomeno così bene da poter affermare se sono giusti o sbagliati.

I tuoi mi sembrano sempre sbagliati. Ma potrei sbagliare io.

Passiamo ad altro problema gli script vengono modificati.

Quindi i test condizionali ed altre cose vengono sconvolti e poi ...

si ottengono degli errori da parte dell' interprete Basic,

che riscontra altrettanti errori.

Quindi il Forum oltre che ostico è anche ambiente ostile,

allo sviluppo della programmazione.

Quindi va da sè che un giorno o l'altro mi stufo e l'abbandono,

migrando altrove ove vi sia più versatili, veloci, accoglienza, affidabilità.

Ripropongo lo script con un primo contatore

Codice:
Option Explicit
Sub Main
	Dim P,I,F 'Primario / Inizio / Fine
	Dim N ' Ciclo -Enne- Estrazioni
	Dim S 'Secondario
	Dim E 'Estrazione
	Dim Numeri(10)
	Dim Ruota
	Dim L
	Dim Pos
	Dim Q
	Dim Bold
	Dim CP
	Ruota = BA_
	Scrivi NomeRuota(Ruota) & " ",0,0
	For N = 1 To 10
		Numeri(N) = N
	Next
	Scrivi StringaNumeri(Numeri,,True)
	Scrivi
	'DATI :
	I = 3862 'Inizio Principale
	F = 3897 'Fine Principale
	N = 9 'Numero di estrazioni per ciclo
	For P = I To F Step 9 'Ciclo principaleI=z
	CP = 0
		For S = 0 To N - 1 'Ciclo Secondario
			E = P + S 'Estrazione nel ciclo
			Scrivi E & "  " & DataEstrazione(E) & "  ",0,0
			For Pos = 1 To 5 'leggo gli estratti uno ad uno
				L = Estratto(E,Ruota,Pos) ''
				For Q = 1 To 10
					If Numeri(Q) = L Then
						CP = CP + 1
						ColoreTesto 2
						Bold = True
					End If
				Next
				Scrivi Format2(L),Bold,0 ''' Li Scrivo singolarmente
				ColoreTesto 0 : Bold = False
				If Pos < 5 Then Scrivi ".",False,False
			Next
			Scrivi
		Next
		ColoreTesto 2 : Scrivi CP,True : ColoreTesto 0
		Scrivi String(32,"-")
	Next
End Sub
 
Bene ora sappiamo le presenze in ogni ciclo e se ho ben capito occorre un altro contatore per i cicli .
Allego diagramma di flusso dei due cicli for next uno per le estrazioni in archivio e uno per i cicli di 9 estrazioni . La parte in rosso e il diagramma di flusso precedente che ricerca le presenze in una estrazione . Cicli for next  sulle estrazioni archivio efor next estrazioni ciclo.jpg
 
Ciao Eugenio.

Si ho accennato alla necessità di più contatori.

Uno per le "Presenze" in ogni ciclo ...

Uno per il Ritardo (in cicli)

Ho aggiunto un secondo contatore che, PER ADESSO, conta "i cicli".

Quindi più che un "diagramma di flusso completo" ...

all'interno del redigendo script si tratta di trovare il punto in cui inserire, codesto contatore.

E' abbastanza evidente ed intuitivo che dove si azzera il conteggio delle presenze

ed inizia un nuovo ciclo, è un "punto nodale" particolarmente significativo ed utile.

Sicchè ho inserito l'incremento del conteggio dei cicli proprio in questo punto.

Aggiungo che ciò fa parte delle abitudini e/o delle preferenze personali. O ... di scelte.

Si potrebbe scrivere diversamente.

Se funziona ... è giusto.

Vi potrebbero anche essere "letture differenti" di questo conteggio ...

ma se si sa "che cosa è" il risultato differente può essere "omologato",

confrontato, pareggiato, eguagliato.

Codice:
Option Explicit
Sub Main
	Dim P,I,F 'Primario / Inizio / Fine
	Dim N ' Ciclo -Enne- Estrazioni
	Dim S 'Secondario
	Dim E 'Estrazione
	Dim Numeri(10)
	Dim Ruota
	Dim L
	Dim Pos
	Dim Q
	Dim Bold
	Dim CP,CC
	Ruota = BA_
	Scrivi NomeRuota(Ruota) & " ",0,0
	For N = 1 To 10
		Numeri(N) = N
	Next
	Scrivi StringaNumeri(Numeri,,True)
	Scrivi
	'DATI :
	I = 3862 'Inizio Principale
	F = EstrazioneFin  'Fine Principale
	N = 9 'Numero di estrazioni per ciclo
	For P = I To F Step 9 'Ciclo principaleI=z
	CC = CC + 1 'Contatore Cicli Aumenta di 1 ad ogni passaggio 
	CP = 0 'CP = Contatore Presenze = 0  
		For S = 0 To N - 1 'Ciclo Secondario
			E = P + S 'Estrazione nel ciclo
			Scrivi E & "  " & DataEstrazione(E) & "  ",0,0
			For Pos = 1 To 5 'leggo gli estratti uno ad uno
				L = Estratto(E,Ruota,Pos) ''
				For Q = 1 To 10
					If Numeri(Q) = L Then
						CP = CP + 1
						ColoreTesto 2
						Bold = True
					End If
				Next
				Scrivi Format2(L),Bold,0 ''' Li Scrivo singolarmente
				ColoreTesto 0 : Bold = False
				If Pos < 5 Then Scrivi ".",False,False
			Next
			Scrivi
		Next
		ColoreTesto 1 : Scrivi "Ciclo N°  " & CC,True : ColoreTesto 0
		ColoreTesto 2 : Scrivi "Presenze  " & CP,True : ColoreTesto 0
		If CC = 50 Then Exit For 
		Scrivi String(32,"-")
	Next
End Sub

Ho aumentato il numero di cicli ampliando il range di estrazioni

sino ad EstrazioneFin ma ho inserito contemporanemente "un limite"

a 50 cicli completi.

:)
 
Eseguendo lo script del messaggio precedente

Si osserva che l'estrazione "E" a cui termina il 50° ciclo è 4311.

Quindi "quella particolare istruzione" utile al delbug che avevo inserito e cioè:

If CC = 50 Then Exit For

può essere sostituita con:

If E= 4311 Then Exit For

Avendo ... un buon periodo di 50 cilcli e tutto il necessario

non rimane che collegare tra loro "i 2 contatori" per determinare

il numero di cicli di ritardo, in cui si manifesti uno di questi cicli

con almeno 7 presenze.

Più semplicemente in script:

If CP >= 7 Then CC = 0

Anche qui .... si trattta di inserire correttamente questa istruzione nello script.

Per comodità e logica ... andrà posta ed eseguita

al termine di ogni ciclo.

:)
 
Il tuo ultimo script e ok . Ora mi studio il tuo ultimo post su i ritardi max . Una cosa hai usato la stessa Variabile N per fare due cose diverse potrebbe dare dei problemi .

[CODE

For N = 1 To 10 Numeri(N) = N
N = 9 'Numero di estrazioni per ciclo
For S = 0 To N - 1 'Ciclo Secondario
[/CODE]
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 14 gennaio 2025
    Bari
    41
    25
    12
    73
    55
    Cagliari
    54
    20
    48
    32
    67
    Firenze
    75
    23
    68
    10
    38
    Genova
    33
    27
    81
    70
    64
    Milano
    68
    01
    64
    86
    87
    Napoli
    47
    75
    45
    10
    21
    Palermo
    55
    86
    33
    53
    70
    Roma
    88
    78
    61
    06
    07
    Torino
    76
    08
    23
    61
    82
    Venezia
    25
    15
    49
    21
    81
    Nazionale
    70
    10
    32
    78
    07
    Estrazione Simbolotto
    Bari
    07
    14
    28
    45
    31
Indietro
Alto