- presentazione del sito
- Registrazione
- Eventi, mostre, convegni ed iniziative segnalate dalle aziende
- Recensioni ed articoli
- Le Mailing Lists
- La rivista Pc Ciechi
- Wiki
- Chi siamo
- Donazioni
- Un progetto degno di nota: Wintalbra
- Come navigare in questo sito
- rss
- Bancomat Accessibili sul territorio nazionale
- Contattaci
- I sostenitori di SpazioAusili
Ripasso 1: valori, numeri, stringhe, variabili, routine e funzioni
Guido Ruggeri su winguidotecnica, 14\01\2010, h. 13.18.
Iniziamo un ripasso destinato essenzialmente a chi è
rimasto indietro o si sta inserendo solo adesso, ma che
può essere per tutti un'occasione per approfondire alcuni
concetti che avevamo soltanto accennato.
Il cuore del computer è il processore. Il processore
manipola numeri.
Li calcola, li confronta, li mette nella memoria e dalla
memoria li riprende.
La memoria non è altro che un grande serbatoio contenitore
di numeri, quindi un espansione del processore.
Quando lavoriamo con un codice sorgente, noi manipoliamo dei
valori.
Da dove vengono questi valori?
Alcuni li scriviamo direttamente noi all'interno del codice
sorgente, altri vengono acquisiti durante l'esecuzione del
programma, tramite l'interazione con l'utente e con le varie
unità che fanno parte del computer o a cui il computer è
collegato.
I valori possono essere fondamentalmente di due tipi: numeri
o stringhe.
Cos'è un numero? è qualcosa di simile a ciò che poi va
in pasto al processore. Qualcosa su cui si possono fare
calcoli e confronti.
Per l'interprete VBScript, un valore è un numero quando
è scritto con soli caratteri numerici, e non è racchiuso
tra virgolette.
48
è un numero.
3.14
è un numero. Attenzione al separatore per i numeri
decimali, deve essere il punto, secondo la tradizione
anglosassone, e non la virgola.
1234
è un numero.
"1234"
può somigliare a un numero, ma non è un numero perché
è racchiuso tra virgolette.
Nella memoria del computer, un numero è scritto in codice
binario.
Noi siamo abituati a rappresentare i numeri in notazione
decimale. Per esempio, il numero 123 è rappresentato dalle
cifre 1, 2, 3.
Ma queste sono convenzioni che usiamo noi esseri umani che
viviamo in questo mondo. Potrebbero esserci anche altre
convenzioni.
Se fossimo antichi romani, il numero 123 l'avremmo
rappresentato con le lettere: CXXIII. Avremmo cioè usato
una convenzione diversa.
Per il computer non esistono cifre decimali, non esistono
lettere romane: esistono soltanto codici binari.
Cosa sia un codice binario, lasciamolo perdere: ci basti
sapere che è qualcosa che ha significato per il
processore, ma non per noi.
Così come le nostre cifre hanno significato per noi, ma
non per il processore.
Ma non dobbiamo preoccuparcene, perché il nostro
interprete VBScript ha la bontà di tradurre per noi i
numeri che scriviamo nel codice sorgente in numeri binari
comprensibili al processore.
Quindi, tutto questo per dire che se scriviamo 3456 è un
numero.
Poi ci sono le stringhe.
Una stringa è un insieme definito di caratteri.
Per l'interprete VBScript, un valore è una stringa se è
racchiuso tra virgolette.
"Guido"
è una stringa.
"Ruggeri"
è una stringa.
"Guido Ruggeri"
è una stringa.
"1234"
potrebbe somigliare ad un numero, ma non è un numero
perché è racchiuso tra virgolette. Perciò è una
stringa. In particolare, è ciò che si definisce stringa
numerica, perché fatta di soli caratteri numerici.
Una stringa è un concetto più vicino a noi che al
processore. Infatti, per il processore una stringa contiene
caratteri senza senso.
Il senso glielo diamo noi quando la leggiamo.
Quindi: valori numerici, scritti senza virgolette e composti
di soli caratteri numerici, compreso il punto come
separatore decimale e il segno - per i numeri negativi;
valori di stringa, scritti racchiusi tra virgolette, al cui
interno ci può andare qualsiasi carattere si voglia. Tanto
ha senso per noi, non per il processore.
Il linguaggio di programmazione ci permette di usare delle
variabili per contenere i valori.
Ogni variabile può essere riconosciuta tramite un nome. Di
solito si cerca di scegliere i nomi delle variabili in modo
che aiutino mnemonicamente a ricordare quale ruolo svolgono
all'interno del programma.
I nomi delle variabili possono essere composti da lettere o
da numeri, esclusi gli spazi e gli altri vari segni. Però
il primo carattere deve essere necessariamente una lettera.
Nel codice sorgente, ci si può riferire ad una variabile
scrivendo il suo nome, ovviamente senza metterlo tra
virgolette, altrimenti sarebbe una stringa.
Cognome
è una variabile;
Nome
è una variabile.
L'assegnazione di un valore ad una variabile si fa per mezzo
dell'apposito operatore, che è il segno di =.
Si scrive prima il nome della variabile, poi il segno di
uguale, poi il valore da assegnare.
Talvolta questa stessa cosa viene espressa dicendo che il
nome della variabile va a sinistra dell'uguale, mentre il
valore va a destra.
Esempi di assegnazione a variabile:
Cognome = "Ruggeri"
Nome = "Guido"
Anni = 48
abbiamo assegnato due valori di stringa e un valore
numerico.
In VBScript, ogni variabile può essere usata
indifferentemente per contenere numeri o stringhe.
Oltre ai valori e alle variabili, in un programma ci sono le
chiamate a routine.
Le routine sono dei sottoprogrammi, che eseguono
autonomamente alcune operazioni e, quando hanno finito,
consentono al programma chiamante di proseguire.
Anche le routine, come le variabili, sono identificate per
mezzo di un nome.
I nomi delle routine seguono le stesse regole dei nomi delle
variabili.
La differenza è che le routine non possono essere oggetto
di assegnazione, perciò non possiamo trovarle, come le
variabili, alla sinistra di un segno di uguale.
In realtà, questo può succedere nelle operazioni di
confronto: ma questo perché, purtroppo, l'operatore per i
confronti di uguaglianza è anch'esso rappresentato dal
segno di uguale.
Una routine facile e comoda da usare è
MsgBox
che ha lo scopo di far apparire, in una finestra, una
stringa.
La stringa che appare è quella che noi, nella nostra
chiamata, passiamo alla routine sotto forma di argomento.
L'argomento della chiamata, altrimenti detto anche
parametro, va scritto dopo il nome della routine, separato
con uno spazio.
Quindi se voglio far apparire il contenuto della stringa
"Ruggeri", devo scrivere:
MsgBox "Ruggeri"
oppure posso fare prima l'assegnazione ad una variabile, e
quindi usare la variabile come argomento. Così:
Cognome = "Ruggeri"
MsgBox Cognome
Cosa succede se chiamiamo MsgBox con un argomento numerico?
Ad esempio, se scriviamo:
MsgBox 48
Succede che il numero che noi passiamo alla routine sarà,
al suo interno, convertito in stringa, cioè trasformato in
una rappresentazione in notazione decimale, dato che noi i
numeri siamo abituati a leggerli così.
E quindi, nella finestra aperta da MsgBox, apparirà quella
stringa, risultato della conversione.
Abbiamo quindi appreso che il nostro interprete VBScript sa
convertire i numeri in stringhe. E sa anche convertire le
stringhe in numeri.
Naturalmente, mentre un numero può sempre essere
convertito in stringa, non sempre una stringa può essere
convertita in numero.
Perché possa, deve essere una stringa numerica, costituita
da soli caratteri numerici.
Per svolgere le conversioni, il linguaggio ci mette a
disposizione alcune apposite funzioni.
Una funzione è una routine che ha la caratteristica, alla
fine della sua esecuzione, di restituire un valore.
Tale valore può quindi essere assegnato ad una variabile.
Per questo motivo è frequente trovare i nomi delle
funzioni a destra del segno di uguale, nelle istruzioni di
assegnazione.
Anche alle funzioni, nella chiamata, possono essere passati
degli argomenti. Una caratteristica delle chiamate di
funzioni e che il blocco degli argomenti deve essere
racchiuso tra parentesi tonde.
In una stessa chiamata, più argomenti si scrivono
separandoli con virgole.
Quindi la tipica sintassi di chiamata a funzione è:
Variabile = Funzione(Argomento1, Argomento2, eccetera,
ArgomentoUltimo)
Parlavamo delle funzioni di conversione.
La funzione per convertire un numero in stringa si chiama
CStr.
Quindi, se scriviamo:
Anni = CStr(48)
la variabile Anni conterrà sì il numero 48, ma sotto
forma di stringa. Cioè, conterrà una stringa di due
caratteri, composta dal carattere "4" e dal carattere "8".
Insomma, equivale a scrivere:
Anni = "48"
La funzione per convertire una stringa in un numero si
chiama CSng. Al suo posto si può usare CInt, se si vuole
che il numero possa essere soltanto intero, senza decimali.
In caso di numeri interi molto grandi, approssimativamente
superiori a 30000, si deve usare un'altra funzione, CLng,
anziché CInt.
Abbiamo parlato delle routine, e delle funzioni in
particolare. Dove le troviamo, queste routine?
Molte, come quelle di cui finora abbiamo parlato, ce le
mette a disposizione lo stesso linguaggio di programmazione
che stiamo usando.
Altre, come vedremo in futuro, potremo costruircele noi
stessi, oppure trovarle già pronte esternamente al nostro
programma.
Fine del ripasso 1.
Ed ora, un po' di pubblicità
: