-
.
Buongiorno,guardando nell'indice di l8+_6.0 non ho capito niente del linguaggio...voglio imparare ad arrangiarmi, avete dei tutorial o delle spiegazioni più chiare, magari anche con degli esempi...devo cercare tra tutti gli estratti una distanza specifica...grazie . -
.
Buonasera, come faccio con uno script a cercare 2numeri vicini e non,sulla stessa ruota con distanza 30 e l'isotopo di uno dei due precedenti ? Grazie
Edited by J-Gio91 - 8/7/2020, 22:09. -
.
Ciao,
Il linguaggio VbScript è sostanzialmente uguale al Basic.
Però a quelle che sono le istruzioni classiche del Basic
sono state aggiunte quelle per la lettura dell'archivio,
quelle per i calcoli lottologici (Gemello, Cadenza, Ritardo, Frequenza, ecc.)
e quelle per la simulazione delle giocate (ImpostaGiocata e Gioca e poi ScriviResoconto).
In quello che hai scritto per esempio ci sono "parole chiave" del Basic che sono altrettante
Istruzioni già predisposte per gestire quelle che sono le situazioni nel Gioco del Lotto.
Lo sono ad esempio: Estratto, Posizione, Distanza, Ruota, DataEstrazione ecc.
È sufficiente organizzare queste istruzioni "eseguibili" dal computer, con logica.
Ciò che hai descritto, se scritto rispettando questa logica e la sintassi corretta
si trasforma in linee di comando che il Computer può eseguire.
Cioè diventano un programma e nel loro insieme sono l'algoritmo risolutore,
ovvero capace di riprodurre ed eseguire (esattamente e velocemente)
il metodo, le ricerche ed i calcoli che desideravi riprodurre, controllare, verificare.
Edited by J-Gio91 - 25/7/2020, 10:06. -
.
Grazie, vedrò di studiare e ci provo...guardando qualche script già compilato non ho capito niente... . -
.
Nel VB come in ogni altro linguaggio ci sono
variabili per contenere dei valori
operatori matematici per le operazioni di confronto e per trattare i testi
Cicli / Test Condizionali / istruzioni specifiche del lotto ed altro.
Naturalmente si ...
per operare al meglio bisogna studiare un pochino.
Meglio avere un testo di riferimento.
Dunque lo script in VbScript inizia conCODICESub Main()
'e finisce con
End Sub
Questo è uno script "minimale" che non fa assolutamente nulla ma è uno script "funzionante".
Le variabili sono come memorie e/o contenitori
è bene che siano dimensionate con un nome appropriato
Inizio / Fine / Estrazione / P per la posizione / E per gli Estratti
N per i Numeri.
A / B / C / ... K per contare
X / Y / Z per i valori numerici.
R per la Ruota ecc ...
I o Ini per un "Inizio" F o Fin per una "Fine"
N(1) N(2) N(3) se i numeri sono 3.
R(1) R(2) R(3) R(4) ... ecc per 4 ruote diverse.
Il ciclo For / Next per eseguire tante volte operazioni ripetitive scrivendo poche linee di programma.
Se si assegnano dei valori a delle variabili si possono eseguire calcoli utilizzandole con grandi vantaggi.
per esempio per non doverli molte volte .... e per evitare errori inevitabili ... e tipici del riscrivere.
Vediamone un altro grande vantaggio con questo piccolo script:CODICEOption Explicit
Sub Main
Dim A,B
A = 2
B = 3
Scrivi A + B
Scrivi A + A
Scrivi A*B
Scrivi A * 3
Scrivi (A * A + B) / 3
End Sub
E' uno script che eseguito scrive "5" e poi molti altri risultati ...
Faccio notare che se invece di usare le Variabili A e B per contenere dei valori
avessimo usato direttamente i valori corrispettivi,
e se volessimo sapere quali sono i risultati di tutti i calcoli con un valore di A diverso (dal 2 che abbiamo scritto)
avremmo dovuto inserire, RISCRIVERE QUESTO "NUOVO VALORE" IN TUTTE LE LINEE DEL PROGRAMMA.
Mente invece usando la variabile A ...
lo si cambia una sola volta in "A = valore"
e il computer calcola tutti i risultati con questo nuovo valore.
I cicli For-Next sono utilissimi per comporre tabelle, per eseguire moltiplicazioni, scandagliare tabelle ed archivi.
studiare risultati ottenuti in funzione di valori differenti e/o che cambiano ad ogni nuovo passaggio.
Come per esempio per scorrere le estrazioni in cui leggere gli estratti, contare i passaggi, eseguire calcoli.
....
Per Esempio e per adempiere ad una prima parte della tua richiesta,
lo script deve leggere un certo numero di estrazioni
(diciamo le ultime 10 dell'archivio) prendendo gli estratti nelle loro ruote e posizioni
per eseguire su di essi dei calcoli in maniera ripetitiva.
Metodica, cioè con un metodo in cui è utile usare il ciclo For-Next.
Vediamo subito come scrivere il nome di 10 ruote con meno di 10 linee di programma.
Questo per esempio è un metodo per scrivere 10 nomi di altrettante ruote (in ordine da 1 a 10)
E' una parte dello script che esaudisce la richiesta.
Dimostra che eseguendo più volte una sola istruzione con i cicli For/Next
si possono ottenere "MOLTI risultati" scrivendo "POCHE istruzioni"CODICEOption Explicit
Sub Main
Dim Q,R
For Q = 1 To 10
For R = 1 To 10
Scrivi NomeRuota(R)
Next
Scrivi "------------"
Next
End Sub
Edited by J-Gio91 - 9/7/2020, 11:29. -
.
Visto come con "10 linee" di codice si possono scrivere / leggere / elaborare
centinaia e migliaia ... di dati ...
Si tratta di indirizzare il piccolo script all'esplorazione dell'archivio.
Cioè alla lettura degli estratti che servono per elaborare il metodo.
Per stabilire un periodo di estrazioni occorre decidere da che numero iniziare e con quale finire.
Come si fa normalmente (e come fanno molti di altri) chiamo Ini l'inizio, Fin la Fine, Es l' Estrazione
che di volta in volta, viene elaborata dallo script.
5 sono le Posizioni "P" come 5 sono gli Estratti E(5).CODICEOption Explicit
Sub Main
Dim Ini,Fin,Es,R,P,E(5)
Ini = EstrazioneFin - 9
Fin = EstrazioneFin
For Es = Ini To Fin
Scrivi DataEstrazione(Es),True
For R = 1 To 10
Scrivi FormatSpace(NomeRuota(R),10),True,False
For P = 1 To(5)
E(P) = Format2(Estratto(Es,R,P))
Next
Scrivi StringaNumeri(E)
Next
Scrivi String(24,"-")
Next
End Sub
Nello script dopo aver descritto e dimensionato le variabili necessarie
ho inserito un 3° ciclo: For P = 1 To 5
per leggere le 5 posizioni.
Si nota "al centro" (nella parte più importante) dello script la parola lottologica Estratto.
Estratto letto (nell'archivio) indicando il numero di Estrazione, la Ruota, la Posizione.
Format2 antepone uno zero ai numeri che hanno una sola cifra (non è sempre necessario).
In sintesi, con questo script, si ha, la lettura della parte più recente (ultima) dell'archivio.
Nonché la "struttura-portante" che ottiene di estrazione in estrazione gli estratti per i calcoli
ed in cui inserire le molte condizioni necessarie per completare il metodo.
Edited by J-Gio91 - 8/7/2020, 22:41. -
.
Grazie mille per queste 2 risposte, domani ci studio sopra...ora vado a dormire, domani sveglia alle 4:45...grazie grazie e buona serata ! . -
.
Abbiamo visto come moltiplicando 10 Estrazioni per 10 Ruote
otteniamo la possibilità di indirizzare e poi leggere 100 cinquine.
5 Estratti ognuna e sono raggruppati nel vettore E che ha 5 posti E(5).
Con ognuna di queste cinquine si formano 10 coppie di numeri.
10 Ambi Ognuna.
Dunque lo scopo è quello di ricavare da questi 5 Estratti i 10 Ambi.
E questo è necessario per controllare se tra questi ci sono le
“condizioni previste” dal metodo.
Si tratta di comporre
E(1) con E(2) poi
E(1) con E(3) poi
E(1) Con E(4) poi
E(1) con E(5) abbinati tutti i 4 numeri diversi dal PRIMO
E(2) con E(3)
E(2) con E(4)
E(2) con E(5) abbinati tutti i 3 numeri diversi dal SECONDO
E(3) con E(4)
E(3) con E(5) ed in ultimo
E(4) con E(5).
Si vede come nella prima colonna gli indici (o posizioni) vanno da 1 a 4
Mentre nella seconda colonna iniziano da 2 e vanno fino a 5,
e contemporaneamente iniziano con un vantaggio di “+1” rispetto
alla posizione dell’ Estratto che lo precede.
In script ed in una piccola “prova” (a parte per semplificare la lettura),
si può verificare l'allineamento tra quanto detto e quanto fa questo minuscolo programma:CODICEOption Explicit
Sub Main
Dim P,Q,E(5)
E(1) = 1 : E(2) = 2 : E(3) = 3 : E(4) = 4 : E(5) = 5
For P = 1 To 4
For Q = P + 1 To 5
Scrivi E(P) & "." & E(Q)
Next
Next
End Sub
Edited by J-Gio91 - 8/7/2020, 22:44. -
.
Buon Giorno a tutte/i.
Inserendo lo sviluppo combinatorio contenuto nello script
del messaggio precedente ovvero,
i 2 cicli For-Next che sviluppano i 10 Ambi a Partire dai 5 Estratti ...
Si avrebbero in output 1000 Ambi.
Cioè 10 Ambi, per 10 Ruote, per 10 Estrazioni.
Per avere visulizzati solo quelli che soddisfano la condizione
di essere in distanza D (ovvero in distanza D = 30)
E' sufficiente ed utile predisporre una variabile di nome D
attribuirgli il valore di 30 ... con D = 30 eppoi nello script, subito prima di:
Scrivi E(P) & "." & E(Q)
inserire il TEST CONDIZIONALE
o più semplicemente la VERIFICA DI UNA CONDIZIONE CHE DEVE ESSERE VERA:
If Distanza(E(P),E(Q)) = D Then
Scrivi E(P) & "." & E(Q)
End If
In sintesi una soluzione in VBScript potrebbe essere più o meno questa:CODICEOption Explicit
Sub Main
Dim Ini,Fin,Es,R,P,Q,E(5),D
Ini = EstrazioneFin - 9
Fin = EstrazioneFin
D = 30
For Es = Ini To Fin
Scrivi DataEstrazione(Es),True
For R = 1 To 10
Scrivi FormatSpace(NomeRuota(R),10),True,False
For P = 1 To(5)
E(P) = Format2(Estratto(Es,R,P))
Next
Scrivi StringaNumeri(E) & " " & Space(1),False,False
OrdinaMatrice E,False
For P = 1 To 4
For Q = P + 1 To 5
If Distanza(E(P),E(Q)) = D Then
Scrivi E(P) & "." & E(Q) & Space(1),False,False
End If
Next
Next
Scrivi ""
Next
Scrivi String(43,"-")
Next
End Sub
. -
.
Ottimo..Grazie . -
.
Buongiorno a tutti/e !
Sono riuscito solo oggi a mettermi davanti al pc....
Grazie mille J-Gio91 per la tua "lezione" ed ho capito che è molto difficile come argomento per me...non riesco a seguire tutti i passaggi delle varie variabili e come "ragiona" il programma...in alcuni passaggi ho dovuto togliere il comando "False" altrimenti mi dava errore450, (riga 10 , 14 , 19).
Stò cercando di capire perchè nel report mi indica anche i numeri che hanno una distanza pari a 60..... -
.
Ciao Franco,
Riguardo gli errori, essi dipendono dalla versione vecchia di L8.
Ti consiglio Spaziometria che è un programma totalmente gratuito
e migliore di L8 specie se questo è in una vecchia versione priva
delle molte correzioni contenute negli aggiornamenti che ci sono stati.
La richiesta, non era semplice.
Ma lo script che t'ho proposto è da considerare "una base" sulla quale
si possono sviluppare molti atri metodi e ricerche.
Questo primo script effettua il calcolo della DISTANZA.
Esso suppone che i numeri siano disposti ordinatamente su un cerchio
e pertanto non ci può essere una distanza maggiore del diametro 45.
Dunque la distanza ... non può essere 60. Ma è 30.
Se vuoi usare per il calcolo la "Differenza" tra il valore degli estratti i calcoli sono diversi.
I valori non sono più compresi tra 1 e 45 ma tra 1 e 89 (90-1= 89).
Come dicevo ... in quello script basta cambiare "una formula"
e lo script cambia completamente, passando ad effettuare (tutta) un altra ricerca.
Ho inserito un commento al fianco delle modifiche apportate,
così ti è più facile individuarle e confrontarle con le istruzioni dello script precedente,
e vedere come avrebbe dovuto funzionare senza gli "a Capo" che ci hai dovuto "mettere".CODICEOption Explicit
Sub Main
Dim Ini,Fin,Es,R,P,Q,E(5),D
Dim Out 'PER COMPATIBILITA' L8 6
Ini = EstrazioneFin - 9
Fin = EstrazioneFin
D = 30
For Es = Ini To Fin
Scrivi DataEstrazione(Es),True
For R = 1 To 10
Out = FormatSpace(NomeRuota(R),10)
For P = 1 To(5)
E(P) = Format2(Estratto(Es,R,P))
Next
Out = Out & StringaNumeri(E) & " " & Space(1)
OrdinaMatrice E,False
For P = 1 To 4
For Q = P + 1 To 5
If Abs (E(P)-E(Q)) = D Then ' DIFFERENZA ASSOLUTA
Out = Out & E(P) & "." & E(Q) & Space(1)
End If
Next
Next
Scrivi Out ' Tutto assieme in una linea
Next
Scrivi String(43,"-")
Next
End Sub
. -
.
Buongiorno e grazie, avevo provato a scaricare spaziometria, ma non mi funziona...io ho Windows 10... Può essere che ho letto che funziona solo con WindowsXP ? . -
.
So da altri che funziona con Win10
e con tutte le versioni intermedie.
Ma io uso ancora Vista dunque non so darti altri consigli.
. -
.
buonasera a tutti....ho cercato in rete informazioni per installare spaziometria su win 10 senza risultato, se qualcuno avesse una procedura e mi volese aggiornare sarei grato...
J-Gio91, se adesso volessi trovare il terzo numero mancante della terzina distanza 30 (l'ambo l'ho trovato con il tuo secondo script) quale parte di codice dovrei aggiungere?
Dovrei in qualche modo verificare tutti gli altri estratti con i 2 numeri rilevati....
quindi dovrei prendere E(P) ed E(Q) e verificare che tra gli altri estratti ci sia nuovamente la distanza 30
Credo che dovrei modificare questa parte dello script
OrdinaMatrice E,False
For P = 1 To 4
For Q = P + 1 To 5
If Abs (E(P)-E(Q)) = D Then ' DIFFERENZA ASSOLUTA
Out = Out & E(P) & "." & E(Q) & Space(1)
End If
Ma per quanto mi sono scervellato non sono arrivato a nessuna conclusione....
Ho fatto questa modifica per vedere anche la Nazionale:
For R = 1 To 10 ------> For R = 1 To 12
Esempio:
25.06.2020
Bari 26.50.20.27.64 50.20 26
Cagliari 52.36.25.37.09
Firenze 63.31.41.50.07
Genova 30.48.85.81.68 30
Milano 80.15.77.29.90
Napoli 47.67.51.85.80
Palermo 88.28.46.29.13
Roma 89.75.74.46.48
Torino 07.22.08.51.11
Venezia 65.90.14.71.53
Tutte
Nazionale 56.52.31.86.17 56.86
A Bari c'è l'Ambo 50.20 e il mancante 30 si trova a Genova, mentre sulla Nazionale c'è l'Ambo 56.86 e il mancante 26 a Bari
GRAZIE.