Assegnazione - operatori ed espressioni Introduzione Obiettivo di questa dispensa è la comprensione dell’istruzione di assegnazione e del concetto di espressione.
L’assegnazione L’assegnazione è un’operazione che consente di “dare” un valore ad un dato. Per comprendere meglio questo concetto, è opportuno chiarire in che modo i dati sono memorizzati all’interno del computer. Un computer è dotato di una memoria, che possiamo immaginare come una cassettiera molto grande. Ogni cassetto (cella di memoria) è individuato da un numero binario (indirizzo di memoria) e può contenere al più un oggetto. L’oggetto contenuto nella cella è sempre una sequenza di bit, che viene poi interpretata opportunamente come numero o lettera. Appare chiaro che ogni cella è caratterizzata da un indirizzo e dal contenuto (che può anche essere vuoto). Siccome è abbastanza scomodo utilizzare il codice binario per rappresentare una cella di memoria e il suo contenuto, si è pensato di fare riferimento alla cella con un nome simbolico (identificatore) e al contenuto della cella con numeri del sistema decimale o lettere dell’alfabeto o altri caratteri, come i simboli di punteggiatura. Alla luce di quanto affermato, possiamo trarre due conclusioni: L’assegnazione consente di inserire un valore all’interno della memoria, in un’apposita cella (cassetto) identificata da un nome simbolico, detto identificatore. Un dato può essere considerato come una coppia formata da nome e valore.
Dati variabili e dati costanti In generale, per dato variabile si intende un dato il cui valore può cambiare un numero imprecisato di volte, mentre con il termine dato costante si intende un dato il cui valore non subisce modifiche, almeno per un intervallo di tempo per noi significativo. Volendo essere più precisi, occorre dire che: un dato variabile (o semplicemente variabile) ha un valore che può variare più volte durante l’esecuzione del programma; un dato costante (o semplicemente costante) ha un valore che, una volta determinato, non può più variare per tutta l’esecuzione del programma, ma può essere diverso per differenti esecuzioni dello stesso programma.
Notazione per l’assegnazione Per indicare che si vuole assegnare ad una variabile un certo valore (il discorso è analogo per una costante), si usa la scrittura: ID_variabile
valore
o in alternativa ID_variabile = valore Autore: Cinzia Bocchi Ultimo aggiornamento: 08/08/11
1
Quando usiamo un identificatore di variabile all’interno di un programma, in realtà stiamo facendo riferimento al valore contenuto nella cella di memoria individuata dal quell’identificatore.
Dichiarazioni Alcuni linguaggi di programmazione (tra cui Java), richiedono che gli identificatori di variabili (e qualsiasi altro identificatore) siano dichiarati, all’interno del programma, prima di poter essere usati. La dichiarazione consente di specificare il tipo di valore che sarà contenuto nella cella e il suo nome. Esempio In Java, se desideriamo utilizzare la variabile x, contenente numeri interi, dobbiamo dichiararla in questo modo: int x; Supponiamo che la seguente tabella sia la memoria del computer: si avrà
indirizzo simbolico della cella: x
valore: non specificato
Quando assegniamo un valore alla variabile x, per esempio 10, in realtà andiamo a memorizzare nella cella di memoria il valore stesso: x
10
Valore: 10
indirizzo simbolico della cella: x
Autore: Cinzia Bocchi Ultimo aggiornamento: 08/08/11
valore: 10
2
Assegnazione ed espressioni In precedenza abbiamo visto che il formato dell’istruzione di assegnazione è il seguente: ID_variabile valore In realtà, invece che di valore sarebbe meglio parlare di espressione. ID_variabile
espressione
Un’espressione è una formula che specifica sempre un valore, quando viene calcolata. Esempi di espressioni sono: 2 singolo valore costante a singolo valore variabile (a+2)/100 espressione algebrica che produce un risultato numerico a<2 espressione logica (booleana) che restituisce vero o falso a and b espressione logica che restituisce vero o falso L’istruzione di assegnazione è valutata così: 1. prima viene calcolato il valore dell’espressione; 2. poi il risultato viene assegnato alla variabile che si trova a sinistra della freccia (o dell’uguale). Attenzione: a sinistra della freccia può trovarsi sempre e solo un identificatore di variabile. Attenzione: il tipo della variabile a sinistra della freccia deve essere compatibile con il tipo del valore restituito dal calcolo dell’espressione. Se l’espressione fornisce un risultato numerico intero, la variabile deve essere di tipo numerico (intero o reale).
I tipi di dati Molti linguaggi di programmazione obbligano il programmatore a dichiarare il tipo delle variabili e delle costanti prima del loro uso. Indipendentemente dallo specifico linguaggio, possiamo dire che i tipi fondamentali sono: numeri interi (es. -2, -1, 0, 1, 2 ) numeri razionali (es. 2.5, 0.8, -10.6) caratteri (es. A, a, B, b) stringhe (es. ciao, giorno, Via, num10) booleani (solo due valori: TRUE e FALSE) Per ciascun tipo sono definite alcune operazioni di base e i corrispondenti operatori. Per esempio, con i numeri è possibile costruire espressioni aritmetiche/algebriche abbastanza complesse, usando gli operatori aritmetici tradizionali (addizione, sottrazione, divisione, moltiplicazione). Vediamo allora alcuni degli operatori tipici dei linguaggi di programmazione.
Autore: Cinzia Bocchi Ultimo aggiornamento: 08/08/11
3
Espressioni e operatori Classe di operatori aritmetici di confronto logici
Esempio +, -, *, / <, <=, >, >=, <>, = and, or, nor, xor
Tipo degli operandi numerico tutti booleano
Tipo del risultato numerico booleano booleano
Approfondiremo meglio questo argomento quando parleremo degli operatori in Java.
____________________________________________________________________________________________________ Quest'opera è stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
Autore: Cinzia Bocchi Ultimo aggiornamento: 08/08/11
4