'>>>>>>>>>>>>>>>>by MAGOO
'>>>>>>>>>>>>>>>>Ho realizzato questa paginetta per mio utilizzo
'>>>>>>>>>>>>>>>>BAFFOBLU' ha fatto un bel lavoro, per facilitarMI la comprensione delle sue spiegazioni
'>>>>>>>>>>>>>>>>le ho inserite di seguito al codice, in modo da avere sempre visibili comandi e spiegazioni
'>>>>>>>>>>>>>>>>spero che questo possa essere utile anche ad altri che come me sono duri di comprendonio
'>>>>>>>>>>>>>LEGENDA COLORI NELLO SCRIPT:
'>>>>>>>>>>>>> GIALLO : comandi e simboli utilizzati in VBscript
'>>>>>>>>>>>>> VERDE : commenti allo script
'>>>>>>>>>>>>> ROSSO: ho assegnato questo colore ai numeri
'>>>>>>>>>>>>> BIANCO : "cose" che abbiamo creato noi
'>>>>>>>>>>>>> AZZURRO: termini che rappresentano istruzioni o funzioni interne del programma SPAZIOMETRIA
'>>>>>>>>>>>>> FUXIA : comandi che secondo CLAUDIO8 sono superflui o errati
'>>>>>>>>>>>>>>>>PS: se si riscontrassero FESSERIE o imprecisioni per cortesia comunicatelo e provvederò alle opportune modifiche
'>>>>>>>>>>>>>>>>Tutta la pagina rispetta il codice "spazioscript" per cui la si può copiare ed incollare in SPAZIOMETRIA
'---------------------------- LEZIONE DI SPAZIOSCRIPT by
BAFFOBLU (
http://forum.lottoced.com/topic.asp?TOPIC_ID=139849
)
'---------------------------- Questo è uno script fatto da me tratto
da un metodo di un altro utente (vivo), lo analizzeremo nei dettagli passo
passo.
'---------------------------- I calcoli che il metodo esegue sono questi :
'---------------------------- Ogni volta che esce il numero 11 a FIRENZE
(Condizione da ricercare):
'---------------------------- RICERCA AMBATA
'---------------------------- 1° BA + 2° NA x 1° NAZ ( Calcoli per ricavare
l’ambata)
'---------------------------- RICERCA ABBINAMENTI PER AMBO
'---------------------------- 1° BA x 1° RO + 1° RO ( per 1° abbinamento)
'---------------------------- 4° BA x 60 + 77 (per2° abbinamento)
'---------------------------- Questo script dovrà ricavare una ambata e due
numeri da abbinare per ambo sulla ruota di FIRENZE
'>>>>>>>>>>>>>>>>>>>>>>>>>>> ECCO LO SCRIPT ( ed i relativi commenti e
spiegazioni)
Sub Main() '---->Sub Main() ( Inizio di un Insieme
di istruzioni-principale)
'---- Sub sta per ( Subroutine ) che vale a dire ( inizio di Un insieme di
istruzioni)
'---- Main invece sta per ( Principale )
'---- Sub Main è come una maniglia attaccata ad un cassetto, voi la tirate è il
cassetto si apre,
'---- e dentro potete inserire diversi oggetti (in questo caso istruzioni),
chiaro il paragone ? bene !
Dim
ruote(1) '---->Dim è un istruzione che
significa "Dimensiona" o "Quantifica"
'---- In questo caso stiamo parlando di ruote del lotto, ma potremmo benissimo
parlare di "Cassetti"
'---- Questo esempio dei "cassetti" lo vedrete spesso, proprio perché ( i
cassetti contengono qualcosa )
'---- Per essere precisi stiamo decidendo quanti "cassetti" deve avere il nostro
mobile.
'---- In questo caso i "cassetti" - (le ruote) contengono i "calzini" - (i
numeri estratti al lotto)
'---- l'istruzione "Dim ruote(1)", non fa altro che dire allo script su quante
ruote vogliamo farlo lavorare.
'---- Vedete quel numero tra parentesi dopo la parola ruote ? - c'è scritto
ruote(1), che sta a significare che vogliamo far
'---- lavorare lo script su una sola ruota
'---- Se vorremo lavorare su due ruote, dovremo solo inserire al posto di "1" il
numero "2", ruote(2) o ruote(3) e cosi via.
'---- Basta solo cambiare il numero tra parentesi
'---- Avete appena imparato che l'istruzione "Dim" sta per (Dimensiona) o
(Quantifica)
Dim
posta(1) '----->Dim posta(1), abbiamo inserito
(1) per far capire che quel "contenitore" contiene solo una "sorte",
'---- in questo caso io gli ho attribuito la sorte di Ambata (1 sta per un solo
numero o estratto)
Dim
poste(2) '----->Dim poste(2) contiene due
sorti, a cui (in seguito) attribuisco la sorte di Ambo
Dim
n(1) '----->Dim n(1) : come già sapete, abbiamo
dimensionato un contenitore chiamandolo "n" e la sua capacità posta ad (1)
'---- La "n", potrebbe stare per "Numeri", ma lo potremmo chiamare anche "poroppoppero"
che non farebbe differenza,
'---- 'importante e che poi ci ricordiamo di averlo nominato in quella maniera,
perché ci servirà in seguito e dovremo richiamarla
'---- così come abbiamo deciso di scriverla.
'---- Dim n(1), sta per il n° di numeri da porre in gioco (in questo caso
l'ambata)
'---- se le ambate fossero state due avremmo dovuto scrivere Dim n(2) per
indicare che sono "due" i numeri in gioco
Dim
am(3) '------> Dim am(3) : questo è la stessa
cosa, lo ho chiamato "am" solo per distinguerlo, ma lo potevo chiamare come mi
pare
'---- l'importante è fare gli esatti riferimenti quando poi ci servirà in
seguito specificare che cosa vogliamo giocare.
'---- In questo caso Dim am(3) contiene "tre" numeri, che sono la quantità di
numeri da porre in gioco solo per Ambo.
'---- Se i calcoli di un metodo ricavano più numeri, aumenteremo di conseguenza
il numero del contenitore, tutto qua
posta(1)
=
10 '-------> posta(1) = 10, richiama la
"Dim" Dim posta(1)
'----- qui inseriremo la cifra in Euro che vogliamo puntare, posta(1) = 10 sta a
significare che vogliamo puntare 10 euro sull'ambata
'----- Se volessimo puntare 50 centesimi dovremo scrivere 0.50 e cosi vale per
tutte le puntate inferiori ad un euro
poste(2)
=
5 '--------> poste(2) = 5 : stesso
discorso ma per la sorte di ambo, in cui io ho deciso di puntare 5 euro
clp =
9 '---------> "clp" sta per "colpi" (di
gioco), clp = 9 significa che giocheremo la previsione per 9 colpi
'-----------
se vogliamo che la durata del gioco sia maggiore o minore, basterà cambiare il 9
con un altro numero (di colpi)
ini =
EstrazioneFin - 150 '----> "ini" sta per
"inizio" , cioè lo script inizierà le verifiche dal parametro inserito dopo il
simbolo=
'------ EstrazioneFin è riconosciuto dallo script come : data dell'ultima
estrazione in archivio
'------ quindi : ini= EstrazioneFin - 150, indica allo script di iniziare la
verifica partendo 150 estrazioni prima
'------ dell'ultima estrazione in archivio.
fin = EstrazioneFin '-----------> fin =
EstrazioneFin, invece sta a significare : elabora lo script fino all'ultima
estrazione presente in archivio
co =
0 '---------------> co = 0 : è un contatore
dei casi rintracciati, In questo caso il è posto a "0" perchè le istruzioni per
decidere
'-----------------
le condizioni dei casi da trovare non sono ancora state specificate
For
es = ini To
fin
'------> "For" è un istruzione di programmazione che significa "per"
'--------------------------------- "es" sta per "estrazioni"
'--------------------------------- "To" è un istruzione di programmazione che
significa "a"
'--------------------------------- "ini" e "fin" abbiamo già visto che
corrispondono all'inizio e fine del gruppo di estrazioni da esaminare
'--------------------------------- For es = ini To fin, tradotto in parole
povere e in Italiano suonerebbe così :
'---------------------------------
"per"."estrazioni".=.(da)."inizio-estrazioni"."a"."fine-estrazioni"
'--------------------------------- ABBIAMO SPECIFICATO ALLO SCRIPT CHE
''-------------------------------- abbiamo dato a "es" il significato
"dall'inizio alla fine delle estrazioni" prese in esame
'--------------------------------- Questo in programmazione è chiamato "ciclo
For Next",
'--------------------------------- l' istruzione (For es = ini To fin) deve per
forza chiudersi con un "Next" che significa "Prossimo"
'--------------------------------- l' istr. "Next" sarà alla fine dello script,
perchè in mezzo metteremo le condizioni di ricerca del metodo
Messaggio
es '--------------------> Messaggio es :
non fa altro che dirci qual'è l'estrazione in cui si è verificata la condizione
ruote(1)
=
3 '------> ruote(1) = 3 : Il "3" sta per
la ruota di (Firenze). la "1" è Bari, la "2" è Cagliari e cosi via,
'------------------------ all'inizio avevamo "Dimensionato" la "Dim ruote(1)
'------------------------ adesso diciamo allo script, esattamente quale è la
ruota (1) con cui vogliamo lavorare
For
p =
1 To
5'--> "For"
sappiamo già cosa significa , la "p" invece qui è intesa come abbreviazione di
"posizione"
'------------------------ Italianizzando:
'------------------------ "For"
.............."p"..............................=..........."1"...."To"..."5"
'------------------------ "Per" .. "posizione"(degli estratti) .. = .. (da) "1"
... "a" ... "5"
a
=
Estratto(es,3,p)'------>
"a"..=.."Estratto"......("es",......................."3",............................."p")
'---------------------------------- "a"..=.."Estratto".....("estrazione","ruota
di Firenze","posizione dell'estratto")
'---------------------------------- Stiamo dicendo allo script che il simbolo
"a" (a cui daremo un valore appena più sotto)
'---------------------------------- dovrà essere ricercato all'interno di quei
parametri ( estrazione, ruota FI, pos estratto)
ok =
0 '-------------------------------> superfluo
, non è una condizione bensì un contatore come il “co” che conta i casi
If
a
=
11 Then ' --------->
If (se) indica una condizione , che se positiva Then (allora) eseguirà le
prossime istruzioni
'------------------------------- "If"...
"a".............=........."11".........."THEN"
'------------------------------- "se".."a"... .è uguale
a.."11"..........."esegui le prossime righe di istruzione
'------------------------------- Condizione da ricercare: Ogni volta che esce il
numero 11 a FIRENZE
'------------------------------- Se la condizione esiste verranno effettuate le
seguenti operazioni:
'------------------------------- RICERCA AMBATA :
'------------------------------- 1° BA + 2° NA x 1° NAZ ( Calcoli per ricavare
l’ambata)
'------------------------------- RICERCA ABBINAMENTI PER AMBO:
'------------------------------- 1° BA x 1° RO + 1° RO ( per 1° abbinamento)
'------------------------------- 4° BA x 60 + 77 (per2° abbinamento)
'------------------------------- Nelle righe di codice che seguono dovremo
cercare tutti gli estratti che
'------------------------------ ci servono per fare somme e abbinamenti, ad ogni
estratto da ricercare daremo nome idoneo
'------------------------------ 1° BA lo chiameremo primodibari, 4* BA sarà
quartodibari, ecc, ecc
'------------------------------------ Via con le operazioni di ricerca degli
estratti:
primodibari =
Estratto(es,1,1)'--------------->
definizione-nome e ricerca 1°BA
quartodibari =
Estratto(es,1,4)'-------------->
definizione-nome e ricerca 4*BA
secondodinapoli =
Estratto(es,6,2)'------->
definizione-nome e ricerca 2°NA
primodinazionale =
Estratto(es,12,1)'----->
definizione-nome e ricerca 1°NAZ
primodiroma =
Estratto(es,8,1)'------------->
definizione-nome e ricerca 1°RO
'-----------------------------------> Adesso che abbiamo gli estratti che ci
servono
'------------------------------------ Via con le operazioni di calcolo
o =
primodibari
+ secondodinapoli'-------->
stiamo definendo che "o" corrisponde (=) alla somma 1° BA + 2° NA
b =
Fuori90(o
*
primodinazionale)'--------->
def.nome e det. (=) da Fuori90(funzione Sscript) di o (1° BA + 2° NA) X
primodinazionale (1°NAZ)
c =
primodibari *
primodiroma'-------------->
dovrebbe essere chiaro
d
=
Fuori90(c
+
primodiroma)'--------------> come
sopra
e =
quartodibari *
60'-------------------------->
come sopra
f =
Fuori90(e
+
77)'---------------------------->
come sopra
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'------------------------------LE ULTIME TRE RIGHE DI CODICE SONO STATE RIVISTE
DA CLAUDIO8
n(1)
=
b'<<(Precedente se remmato non funziona) Dim n(1) assume il valore di b (vedi sopra)
am(1)
=
b'<<(Precedente se remmato non funziona)
Dim am(1) come sopra
am(2)
=
d'<<(Precedente se remmato non funziona)
Dim am(2) assume il valore di d
am(3)
=
f'<<(Precedente se remmato non funziona)
Dim am(3) assume il valore di f
'ok = 1 ' superfluo 'questo contatore ok diventa 1
solo se la precedente condizione
'è 'verificata quindi, non serve perché è il verificarsi della condizione “ If a
= 11 Then “ che porta il programma alla letture dei
'costrutti che lo seguono e quindi a leggere tutto il resto dello script per cui
anche queste 2 righe che seguono sono inutili, rallentano
'solo il processo chiedendo una ulteriore verifica della “ If ok = 1 then . …
che non serve a niente se non a rallentare la velocità di
' elaborazione. Di conseguenza questo end if superfluo va cancellato perchè la
condizione if viene chiusa sotto il Gioca es
'End If 'superfluo
'If ok = 1 Then 'superfluo
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'-----------Fino a questo punto lo script ha cercato e trovato:
'-----------1° volta che esce il numero 11 a FIRENZE (Condizione da ricercare)
co =
co +
1'----------------------->questa
istruzione fa ripartire un nuovo ciclo di ricerca sino alla fine
'--------------------------Alla fine dei cicli di ricerca:
Scrivi String(70,"°") & "
Caso n°" &
co,1 '--->Letteralmente
Scrivi la seguente stringa (riga) di caratteri :
'-------------------------------------------------------- 70 volte ° (quello tra
virgolette) e (&) Caso n° e (co) tutte le combinazioni trovate
'-------------------------------------------------------- 1 significa scrivi in
grassetto (0 = corsivo)
Scrivi String(70,"°"),1'...........>Scrvi una riga
di caratteri: 70 volte ° in grassetto
ruote(1)
=
3'---------------------->Qui abbiamo
riconfermato la ruota di gioco (3)
ImpostaGiocata
1,n,ruote,posta,clp,1'------>ImpostaGiocata
è la prima giocata che effettueremo:
'------------------------------------------------------- "n" che abbiamo
dimensionata a (1) all'inizio con "Dim n(1)" e può contenere un solo numero
(l'ambata)
'------------------------------------------------------- "ruote" lo abbiamo già
specificato la ruota in gioco, qui la richiamiamo
'------------------------------------------------------- "posta" La "Dim"
iniziale l'abbiamo impostata a (1) e abbiamo anche specificato quanto puntare
'------------------------------------------------------- "clp" sono i colpi di
gioco
'------------------------------------------------------- "1" indica
all'elaborazione della previsione di fermasi al primo esito raggiunto
'------------------------------------------------------- esito raggiunto per
sortita o per termine dei colpi a disposizione
'>>>>>>>>>>COMMENTATO DA
CLAUDIO8<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
'n(1) = b 'errato tutti questi errati vanno
eliminati perche i parametri da dare in pasto
' alla funzione ImpostaGiocata devono essere precedenti alla stessa, quelli che
scrivi dopo non vengono considerati in pratica non puoi
' prima dirgli di giocare i numeri n e dopo dargli i numeri (n1) , stessa cosa x
am ed am(1..2..3) se provi a remmare i “precedente”
' numeri,vedrai che non ti gioca nessun numero esatto.
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ImpostaGiocata
2,am,ruote,poste,clp,2'-------->Il
risultato è una terzina da giocare per ambo sulla ruota specificata
'<<<<<<<<<<<<<<<<<<<<<COMMENTATO DA CLAUDIO8<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
'am(1) = b 'errato superfluo e da eliminare
'am(2) = d 'errato superfluo e da eliminare
'am(3) = f 'errato superfluo e da eliminare
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Gioca es'------------>Che sta per "Gioca" la
previsione dopo l'estrazione con la condizione ricercata
'-----------Adesso dobbiamo chiudere o confermare le procedure aperte durante lo
script, e di seguito troviamo :
End If
Next
Next
ScriviResoconto'-------------->stampa a video tutto
quello richiesto allo script restituendoci i risultati delle previsioni e il
'------------------------------------- loro andamento durante il periodo
analizzato
End Sub'------------->Chisura dello script