1 corso di laurea in biotecnologie informatica (programmazione) assegnamento di valore a una...

15
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

Upload: lisa-valsecchi

Post on 01-May-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

1

Corso di Laurea in Biotecnologie

Informatica(Programmazione)

Assegnamento di valore auna variabile

Anno Accademico 2009/2010

Page 2: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

2

Istruzione di assegnamentoL’istruzione di assegnamento permette di assegnare un valore ad una variabile precedentemente dichiarata.

In Java la forma generale di tale istruzione è:

<id>=<value>;

In cui:

<id> identificatore della variabile

<value> valore da assegnare alla variabileL’operatore di assegnamento in Java è il simbolo ‘=‘. Il valore da assegnare deve essere dello stesso tipo della variabile specificata a sinistra del simbolo ‘=‘

Page 3: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

3

Istruzione di assegnamento (esempio)public class EsempioAssegnamento {

public static void main(String arg[]) {

byte isByte;short isShort;int isInt;long isLong;float isFloat;double isDouble;char isChar;boolean isBoolean;

isByte=98;isShort=20000;isInt=1000000000;isLong=1000000000000;isFloat=2.567;isDouble=0.0000001;isChar=‘a’;isBoolean=true;

}}

Page 4: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

4

Inizializzazione di variabileSi può anche assegnare un valore a una variabile nell’ambito della sua dichiarazione. In questo caso si dice che la variabile viene inizializzata:

<type> <id>=<value>;

Attenzione! E’ una buona abitudine assegnare ilvalore a una variabile o quando la si dichiara

(inizializzazione in fase di dichiarazione) o comunque prima del suo utilizzo. Infatti, il contenuto di una

variabile dichiarata ma non inizializzata è INDEFINITO

Page 5: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

5

Inizializzazione di variabile (esempio)

public class EsempioInizializzazione {public static void main(String arg[]) {

byte isByte=98;short isShort=20000;int isInt=1000000000;long isLong=1000000000000;float isFloat=2.567;double isDouble=0.0000001;char isChar=‘a’;boolean isBoolean=true;

}}

Page 6: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

6

Istruzione di assegnamentoDa dove può venire il valore da

assegnare ad una variabile?

1. Può essere un valore esplicito

<id>=<esplicit_value>;

2. Può essere il valore contenuto qualche un’altra variabile dello stesso tipo

<id>=<some_other_id>;

Esempio:

int x;double d;

x=10;d=10.234;

Esempio:

int x;int y;

x=10;y=x;

Page 7: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

7

Istruzione di assegnamentoDa dove può venire il valore da

assegnare ad una variabile?

3. Più in generale può essere il risultato della valutazione di un’espressione

<id>=<expression_result>;

Esempio:

int x;int y;

x=10;y=(x+2)*(x+1);

Page 8: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

8

Istruzione di assegnamentoATTENZIONE! l’operatore di assegnamento ha precedenza più bassa rispetto a qualsiasi altro operatore. Ciò significa che nell’istruzione Java:

<id>=<expression_result>;

prima viene valutato il valore fornito da <expression_result> e poi tale valore viene assegnato alla variabile identificata da <id>. Ad esempio il seguente frammento di codice:

int x=1;x=x+1;System.out.println(x);

funziona perfettamente e stampa la stringa “2”

Page 9: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

9

Esempio di programmapublic class AreaTriangolo {

public static void main(String arg[]) {

int base;int altezza;int areaTriangolo;

base=200; //Assegno un valore esplicitoaltezza=base; //Assegno una variabile

/*Assegno l’espressione (in questo casoaritmetica)che fornisce l’area del triangolo*/areaTriangolo=(base*altezza)/2;

System.out.println(“Area=“+areaTriangolo);}

}

NB Le annotazioni del programmatore (i commenti) che stanno dopo // oppure tra /* e */ (evidenziati in grassetto) non sono parte del codice Java e sono completamente ignorate dal compilatore. Servono solo a rendere più comprensibile il funzionamento del programma.

Page 10: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

10

Cos’è un’espressioneUn’espressione è in generale una combinazione di operatori, di operandi (valori espliciti e variabili) e di parentesi tonde. La sua valutazione produce (restituisce) un valore il cui tipo dipende dagli operandi e dagli operatori che formano l’espressione.

Ad esempio:

(a+b+c)/(p-y)*k

((a+3)*b)-4*c

2.1*a+1.34/b

sono tre espressioni, dove a, b, c, p, y e k sono operandi di tipo numerico (numeri interi e in virgola) e +, -, /, * sono gli operatori di somma, sottrazione, divisione e moltiplicazione

Page 11: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

11

Gli operatoriUn operatore è un simbolo che regola l’esecuzione di una certa operazione. Il valore restituito dall’operazione dipende dal tipo di operandi su l’operatore agisce e dal tipo di operatore stesso.

Un operatore può essere:

unario se opera su un solo operando

binario se opera su due operandi

Page 12: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

12

Gli operatori (qualche notazione…)Indichiamo in generale con OP un operatore qualsiasi e con op1 e op2 due operandi qualsiasi. Si ha che:

gli operatori unari possono utilizzare la:

notazione prefissa se l’operatore appare prima dell’operando OP op1

notazione postfissa se l’operatore appare dopo l’operando op1 OPNB Vedremo solo operatori unari che utilizzano la notazione prefissa (ad esempio l’operatore di negazione aritmetica e quello di negazione logica) gli operatori binari in genere utilizzano la

notazione infissa in cui l’operatore appare tra i due operandi op1 OP op2

Page 13: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

13

Precedenze tra operatoriPiù operatori possono essere combinati in espressioni complesse. Essi hanno una precedenza che determina l’ordine in cui vengono valutati (cioè eseguiti). Gli operatori con la stessa precedenza vengono valutati procedendo da sinistra a destra dell’espressione. L’ordine di precedenza può essere modificato utilizzando le parentesi tonde.

Page 14: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

14

Precedenze tra operatoriAd esempio, gli operatori aritmetici di moltiplicazione e divisione hanno la precedenza sugli operatori aritmetici di somma e sottrazione. Nei due esempi seguenti:

a+b+c+d prima viene valutata a+b, poi si aggiunge ad a+b il valore di c e poi si aggiunge ad a+b+c il valore di d

a+b*c+d/e prima viene valutata b*c, poi d/e, poi viene sommato il contenuto di a al risultato di b*c. Infine al risultato di a+b*c viene aggiunto il risultato di d/e. L’ordine di valutazione (e soprattutto il risultato) cambierebbe se si scrivesse (a+b)*(c+d)/e

Page 15: 1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010

15

Tipi di operatori

Gli operatori che vedremo sono: operatore di assegnamento (gia visto!)

operatori aritmetici

relazionali

logici

Gli operatori aritmetici permettono di costruire le espressioniaritmetiche (il cui risultato è un numero), mentre gli operatori

aritmetici, relazionali e logici permettono di costruire leespressioni booleane (il cui risultato è un valore booleano VERO

o FALSO, che in Java corrisponde ai valori true e false del tipo boolean)