Verranno descritti nel seguito assai brevemente i concetti basilari di programmazione in VBScript, rimandando a manuali specializzati per i dettagli; ci si riferisce ovviamente all’utilizzo di tale linguaggio in LottoScript, tralasciando ulteriori potenzialità non utilizzate dal programma.
Procedure e funzioni
I programmi utilizzati da LottoScript sono suddivisi in gruppi di istruzioni che possono essere di due tipi: procedure e funzioni. Le prime, indicate con "Sub", hanno come scopo quella di eseguire precisi compiti in base ai parametri specificati; le seconde, indicate con "Function", eseguono calcoli o operazioni e restituiscono un valore (numerico o testuale) che può essere utilizzato nel seguito del programma.
In uno script possono essere indicati un numero qualsivoglia di istruzioni e di funzioni, che costituiscono le varie parti di cui è costituito un programma. Per poter essere eseguite, le funzioni e le istruzioni, devono essere richiamate. La chiamata viene effettuata scrivendone il nome e indicando i parametri necessari, come si vedrà in seguito. La chiamata può essere effettuata dall’interno di altre funzioni o procedure, e il flusso del programma passa attraverso i vari moduli durante l’esecuzione.
La routine fondamentale, quella che viene avviata per prima e che deve sempre essere presente è chiamata Main (principale) e viene indicata automaticamente alla creazione di un nuovo script, per velocizzare la stesura. La mancanza della sub Main causerebbe un messaggio d'errore al tentativo di eseguire il codice.
Aprendo la finestra compare dunque la seguente sequenza di due righe di testo:
Sub main()
End Sub
Da esse si possono subito desumere alcune informazioni basilari. Innanzi tutto si nota come alcune parole siano indicate in blu. Esse sono le parole chiave del linguaggio VBScript, in particolare si tratta delle funzioni e delle istruzioni. I nomi delle variabili, e le comuni funzioni matematiche sono scritte in nero. I colori del codice possono essere impostati attraverso la configurazione di LottoScript. Si hanno colori diversi per
La possibilità di colorare diversamente i suddetti elementi del codice consente di avere una maggiore leggibilità dello stesso.
Si nota inoltre come la subroutine sia terminata dalle parole End Sub. Esse indicano la fine della procedura. Allo stesso modo una funzione può essere indicata come segue:
Function Nomefunzione()
End Function
Nella procedura Main sono presenti due parentesi vuote. Tra esse vanno indicati i parametri che vengono forniti alla funzione o alla subroutine in questione, o come si suol dire che vengono passati ad essa. Come detto, la sub Main è quella che viene eseguita all’avvio del programma e sarà quindi la principale, dalla quale saranno richiamate routines e funzioni accessorie all’esecuzione dello stesso; ad essa non vengono quindi passati parametri.
Uno script è organizzato su più righe di programma, che vengono eseguite in sequenza una dopo l’altra. Esistono tuttavia istruzioni in grado di far eseguire ripetutamente un certo gruppo di righe in base a certe condizioni, o di far eseguire certe istruzioni solo se una condizione è verificata, saltandole invece se non lo è.
Dichiarazione di variabili e assegnazione di valori
Le informazioni vengono memorizzate in variabili. Esse sono caratterizzate da un nome e da un valore, che viene specificato attraverso una assegnazione. Si tratta di una particolare struttura di programma che utilizza il segno "=". Ad esempio la seguente riga assegna alla variabile "a" il valore 5.
a = 5
Prima di essere utilizzate le variabili possono essere dichiarate attraverso l’istruzione Dim, che riserva lo spazio di memoria che esse occupano. Ad esempio si può scrivere:
Dim a
a = 5
Per dichiarare più variabili, è necessario separare i vari nomi con una virgola. Ad esempio:
Dim a, b, c
Si tratta tuttavia di un’operazione non strettamente necessaria per le variabili scalari (cioè non vettoriali). In genere le dichiarazioni vengono poste all’inizio della procedura, in modo che sia semplice risalire da un semplice sguardo ai nomi di variabili in essa utilizzati. Le variabili possono anche essere vettori o matrici, e in questo caso esse vanno dichiarate, pena l’insorgenza di un errore in esecuzione. Ad esempio la seguente istruzione dimensiona un vettore b di 5 elementi (si noti che il primo indice è zero)
Dim b(4)
Per assegnare ai 5 elementi valori crescenti da 1 a 5 occorrerà scrivere
b(0)=1
b(1)=2
b(2)=3
b(3)=4
b(4)=5
Se una variabile può essere intesa come un "cassetto" contenente un’informazione, una variabile vettoriale può essere idealizzata come una serie di cassetti, ciascuna contenente un’informazione. Ma una variabile può avere anche 2 o più dimensioni, essere cioè una matrice bidimensionale, tridimensionale, ecc…
Esempio:
b(3,5)=1
Le variabili hanno un'area di validità, cioè parti di script all'interno delle quali possono essere riconosciute. Una variabile dichiarata a livello di routine, sarà visibile solo quando il flusso del programma è interno alla procedura, e verrà distrutta quando la routine sarà terminata. In questo modo è possibile utilizzare variabili diverse, ma aventi lo stesso nome, dichiarandole in routines diverse. Se una variabile viene dichiarata all'esterno di una routine, essa sarà riconosciuta in tutte le routine dello script.
Strutture sintattiche
Per assegnare i 5 elementi precedenti, sarebbe stato più semplice utilizzare il ciclo for…next che consente di effettuare un’operazione un certo numero di volte, incrementando l’indice specificato. Si poteva infatti scrivere:
For i=0 To 4
b(i)=i+1
Next
Tale sequenza di istruzioni può essere così interpretata: "per i che va da 0 a 4 (aumentando di 1 per volta), assegna alla posizione i-esima del vettore b, il valore (i+1)". L'istruzione next (prossimo) rimanda l’esecuzione del programma al "For" corrispondente, fino a che la variabile non ha raggiunto il valore massimo specificato.
Come si vede il blocco di istruzioni for…next si estende su più righe. Un altro blocco che si estende su più righe è quello condizionale if…then…else (se...allora...altrimenti)
If a>0 Then
b=1
Else
b=2
End If
In questo caso se la variabile a ha valore maggiore di zero viene assegnato a b il valore 1, altrimenti gli viene assegnato il valore 2. La parte Else può mancare, cioè si può indicare solamente
If a>0 Then
b=1
End If
In questo caso se a è minore o uguale a zero, il programma passa semplicemente oltre il blocco if…end if. Maggiori dettagli sulla programmazione in linguaggio VBScript possono essere ricercate su manuali dedicati.
Come già anticipato, alla base della programmazione di uno script, ci sono le istruzioni e le funzioni. Oltre alle istruzioni proprie del linguaggio VBScript (come quelle a cui si è accennato), sono disponibili in LottoScript numerose istruzioni e funzioni interne al programma, utilizzabili all’occorrenza per eseguire statistiche e calcoli sui numeri di archivio, o per gestire parametri del programma.
Ad esempio si consideri la seguente istruzione
GeneraAnalitico 6800
Se si indica tale istruzione nel programma e lo si esegue, non accadrà nulla. Con essa Lottodesk calcola il tabellone analitico come appariva all’estrazione numero 6800 e lo conserva in memoria. Come si può notare si tratta di una procedura, che non restituisce nessun valore. Per avere un numero del tabellone analitico si deve utilizzare la seguente istruzione:
a=TabelloneAnalitico(1,BA_,4)
con la quale il valore presente al ritardo 1 sulla ruota di Bari, posizione 4, viene assegnato alla variabile a. Senza l’indicazione della variabile in cui destinare il risultato della funzione, il programma avrebbe generato un errore. Anche in questo caso non si avrebbe nessun output nonostante l’assegnazione alla variabile a.
Per scrivere qualcosa sulla casella di output occorre utilizzare l’istruzione Scrivi.
Scrivi CStr(a)
Altre istruzioni (come l’istruzione Gioca o ScriviResoconto) forniscono dati in output. La funzione CStr, visibile nella riga, serve a convertire il valore a (variabile che rappresenta un numero) in una stringa di testo. In realtà la conversione non sarebbe necessaria, in quanto nel linguaggio VBScript non esiste la distinzione stretta tra i vari tipi di variabili.
Ad esempio le seguenti istruzioni assegnano ad a il valore 5, e a b la stringa "5":
a=5
b="5"
Sulle stringhe non possono essere effettuati conteggi, senza prima convertirle in valori numerici con l’istruzione Eval.
c=Eval(b)+1
Scrivi CStr(c)
c assume in questo caso il valore 6.
Un ruolo importante in un programma scritto, è dato dai commenti, sebbene questi non abbiano nessun ruolo nell’esecuzione. Essi consentono infatti di inserire descrizioni del programma in punti particolari dello stesso, in modo che chi legge il listato possa comprendere facilmente le azioni svolte dal programma stesso. A volte è utile apporre dei commenti ad inizio del listato, dove si descrivono sommariamente le finalità del programma scritto. Per inserire dei commenti è sufficiente apporre un apostrofo ad inizio riga:
'questo è un commento
è anche possibile inserire commenti in fondo alle righe di codice:
Scrivi "Ciao" 'anche questo è un commento
Il linguaggio VBScript prevede anche l’uso della parola "rem" a inizio riga per contrassegnare un commento. Il suo uso è sconsigliato in LottoScript, perché non sarà gestita la colorazione.
Le parole relative ai nomi di funzioni e istruzioni, sia proprie del linguaggio VBScript, sia interne a LottoScript, non devono essere utilizzate come nomi di variabili.
Funzioni che emulano valori costanti
Alcune semplici funzioni consentono di rappresentare i valori delle ruote e delle sorti, per dare maggiore leggibilità al programma. Le ruote possono essere indicate con
BA_
…
VE_
TU_
Le sorti possono essere indicate con
AMBATA_
AMBO_
TERNO_
QUATERNA_
CINQUINA_
Esiste poi la possibilità di ottenere i valori di due costanti matematiche nel seguente modo:
PI_ pi greco
e_ base dei logaritmi naturali
Costanti
Le costanti contengono valori che non saranno modificati durante l'esecuzione dello script. Per creare costanti, è necessario utilizzare l'istruzione Const. In questo modo è possibile associare nomi semplici e immediati a numeri o stringhe che saranno utilizzate nel programma.
Esempi:
Const s = "costante stringa"
Const n = 3
[ 0 su 1 l'hanno trovato utile ]
Apri un ticket per richiedere assistenza al nostro Team Supporto LottoDesk.