1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

Ambiente Java.
Introduzione al linguaggio C
Sistemi di numerazione e codici
Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A CDL in Ingegneria Meccanica - A.A Tipi di dati Ing. Simona Colucci.
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A Tipi di dati Ing. Simona Colucci.
Anno accademico Gli operatori e le espressioni in C.
Il linguaggio C Gli operatori e le espressioni C Language
Programmazione in Java (3)
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: funzione di output a video Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: i commenti Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Programmazione Corso di laurea in Informatica
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Selezione (=scelta) con “if-else”
8) Classi numeriche e operatori Lab. Calc. I AA2002/03 - cap.82 Classi numeriche Esempi di classi numeriche: int, numeri interi che occupano una parola.
Dichiarazioni e tipi predefiniti nel linguaggio C
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
Il Linguaggio C.
Java base I: Sintassi e tipi di dati
LA DOCUMENTAZIONE È noto che un buon programma dovrebbe essere ben documentato.. ma lesperienza insegna che quasi mai ciò viene fatto! –non cè tempo, ci.
Programmazione in Java
Programmazione in Java Claudia Raibulet
CODIFICA Da flow-chart a C++.
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
Esecuzione dei programmi Prolog Liste ed operatori aritmetici
11/11/2004Laboratorio di Programmazione - Luca Tesei1 Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di.
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
Tipi di dati semplici in C (1/3)
Corso di Programmazione in Java – Esercizio n° 001
1 Numeri interi e numeri in virgola mobile F. Bombi 2 6 novembre 2003.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Le variabili in Java Nella programmazione tradizionale, una variabile è una porzione di memoria in cui è immagazzinato un certo tipo di dato. Per esempio.
Una "vera" classe.. ..un esempio pratico: la calcolatrice
Tipi primitivi in java tipodefaultmem.daa booleanfalse1 bittrue false char'\u0000'16 bit byte08 bit short016 bit int032 bit-2^312^31-1.
Introduzione a Javascript
Rappresentazione dell’informazione nel calcolatore.
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Programmazione in Java
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Rappresentazioni a lunghezza fissa: problemi
Rappresentazione dell'informazione
La codifica dei numeri.
Conversione binario-ottale/esadecimale
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
13/08/02Tipi base 1 Tipi interi Operatori numerici Tipi float Caratteri Tipo booleano.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Lezione 2 : Basi del linguaggio Variabili. Come visto nella lezione 1 le classi registrano il proprio stato nelle variabili  int cadenza = 0;  int velocita.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione pre 1ma prova in itinere Marco D. Santambrogio – Ver. aggiornata.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri con segno ed in virgola Marco D. Santambrogio – Ver. aggiornata al 20 Marzo.
La numerazione ottale. Il sistema di numerazione ottale ha ampio utilizzo in informatica E’ un sistema di numerazione posizionale La base è 8 Il sistema.
Definizioni Rappresentazione Operazioni Espressioni Esercizi
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Transcript della presentazione:

1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast

2 Espressione Un’espressione in generale è una “combinazione” di operatori, di operandi (valori o variabili) e di parentesi tonde, e produce (restituisce) un valore di un certo tipo Ad esempio: - ((a+b+c)/(p-y))*k - ((a+3)*b)-4*c *a+1.34/b dove a, b, c, p, y e k sono variabili di tipo numerico; +, -, /, * sono gli operatori di somma, sottrazione, divisione e moltiplicazione

3 Ancora sull’operatore ‘=‘… Si è in precedenza visto che l’operatore di assegnamento ‘=‘ permette di assegnare il valore ad una variabile: = ; Dal momento che un’espressione restituisce un valore, si può anche scrivere: = ; Dove è un’espressione che restituisce un valore dello stesso tipo della variable identificata da. può anche essere data da un’unica variabile.

4 Ancora sull’operatore ‘=‘… … in conclusione ad una variabile, tramite l’operatore ‘=‘, si può assegnare:  un valore esplicito = ;  il valore di un’espressione = ;  il contenuto di un’altra variabile = ;

5 Ancora sull’operatore ‘=‘… … siccome l’operatore ‘=‘ ha in genere precedenza più bassa rispetto a qualsiasi altro operatore significa che nell’istruzione: = ; prima viene valutato il valore di e poi questo valore viene assegnato alla variabile indicata a sinistra di ‘=‘. Il seguente codice: int x=1; x=x+1; System.out.println(“x=“+x); stampa la stringa “x=2” e va a capo

6 Ancora sull’operatore ‘=‘… Esempio: public class AreaTriangolo { public static void main(String arg[]) { int base; int altezza; int areaTriangolo; base=200;//Assegno un valore esplicito altezza=base;//Assegno una variabile /*Assegno l’espressione (in questo caso aritmetica)che fornisce l’area del triangolo*/ areaTriangolo=(base*altezza)/2; System.out.println(“Area=“+areaTriangolo); }

7 Gli operatori Un operatore è un simbolo che regola l’esecuzione di un’espressione e che restituisce un valore che dipende dal tipo di operandi su cui agisce e dal tipo di operatore stesso. Un operatore può essere:  unario  richiede un solo operando  binario  richiede due operandi  ternario  richiede tre operandi

8 Gli operatori (notazioni) Indicato con OP un operatore qualsiasi e con op1 e op2 due operandi qualsiasi, si ha che:  gli operatori unari utilizzano la:  notazione prefissa se l’operatore appare prima dell’operando, ad esempio  OP op1  notazione postfissa se l’operatore appare dopo l’operando, ad esempio  op1 OP  gli operatori binari utilizzano la notazione infissa in cui l’operatore appare tra i due operandi, ad esempio  op1 OP op2

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

10 Precedenze tra operatori Esempi di espressioni aritmetiche in cui moltiplicazione e divisione hanno la precedenza su somma e sottrazione: 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 il risultato) cambierebbe se si scrivesse  (a+b)*(c+d)/e

11 Tipi di operatori Gli operatori si possono suddividere in:  aritmetici  aritmetici di incremento/decremento  di assegnamento (qualcosa è stato già visto…)  relazionali (…nella prossima lezione)  logici (…nella prossima lezione)  bit a bit (che non vedremo…)

12 OperatoreDescrizioneUsoSignificato +Sommaop1+op2 Somma il valore di op1 a quello di op2 -Sottrazioneop1-op2 Sottrae il valore di op2 a quello di op1 *Moltiplicazioneop1*op2 Moltiplica il valore di op1 con quello di op2 /Divisioneop1/op2 Divide il valore di op1 con quello di op2 %Moduloop1%op2 Calcola il resto della divisione tra op1 e op2 - Negazione aritmetica -op1 Trasforma il valore di op1 nel corrispondente di segno opposto Operatori aritmetici Validi per operandi di tipo intero e in virgola mobile

13 Operatori aritmetici Ad esempio il seguente codice: int x, y, z; x=3; y=10; z=y%x;//Modulo System.out.println(“Resto=“+z); z=-x;//Negazione aritmetica System.out.println(“Opposto=“+z); stampa a video: Resto=1 Opposto=-3 e va a capo.

14 OperatoreDescrizioneUsoSignificato ++ Incremento di 1 in notazione prefissa ++op1 Incrementa op1 di 1 e valuta il valore dell’espressione dopo aver incrementato ++ Incremento di 1 in notazione postfissa op1++ Incrementa op1 di 1 e valuta il valore dell’espressione prima aver incrementato -- Decremento di 1 in notazione prefissa --op1 Decrementa op1 di 1 e valuta il valore dell’espressione dopo aver incrementato -- Decremento di 1 in notazione postfissa op1-- Decrementa op1 di 1 e valuta il valore dell’espressione prima aver incrementato Operatori aritmetici di incremento/decremento Validi per operandi di tipo intero

15 Ad esempio il seguente codice: int x, y; x=3; y=++x//Incremento prefisso System.out.println(“x=“+x+” y=“+y); x=3; y=x++;//Incremento postfisso System.out.println(“x=“+x+” y=“+y); stampa a video: x=4 y=4 x=4 y=3 e va a capo. Operatori aritmetici di incremento/decremento L’effetto delle espressioni ++x e di x++ è identico dal punto di vista del contenuto della variabile x che quindi diventa 4 in entrambi i casi. La differenza tra le due notazioni sta nel diverso valore restituito dalle due espressioni ++x e x++. Nel primo caso è 4 e nel secondo è 3.

16 … analogo discorso per il decremento: int x, y; x=3; y=--x//Decremento prefisso System.out.println(“x=“+x+” y=“+y); x=3; y=x--;//Decremento postfisso System.out.println(“x=“+x+” y=“+y); stampa a video: x=2 y=2 x=2 y=3 e va a capo. Operatori aritmetici di incremento/decremento L’effetto delle espressioni --x e di x-- è identico dal punto di vista del contenuto della variabile x che quindi diventa 2 in entrambi i casi. La differenza tra le due notazioni sta nel diverso valore restituito dalle due espressioni --x e x--. Nel primo caso è 2 e nel secondo è 3.

17 Espressioni di shortcut per incremento Operatori aritmetici di incremento/decremento Forma estesaShortcut Risultato dell’esecuzione int x=0; int y; y=x; x=x+1 ; int x=0; int y; y=x++; x=1 y=0 int x=1; int y; x=x+1 ; y=x; int x=0; int y; y=++x; x=1 y=1 Attenzione! Nell’incremento in notazione postfissa l’operatore di assegnamento ‘=‘ ha quindi la precedenza su ++

18 Espressioni di shortcut per decremento Operatori aritmetici di incremento/decremento Forma estesaShortcut Risultato dell’esecuzione int x=1; int y; y=x; x=x-1; int x=1; int y; y=x--; x=0 y=1 int x=1; int y; x=x-1 ; y=x; int x=1; int y; y=--x; x=0 y=0 Attenzione! Nel decremento in notazione postfissa l’operatore di assegnamento ‘=‘ ha quindi la precedenza su --

19 Precedenza degli operatori aritmetici Precedenze degli operatori aritmetici:  massima precedenza  pre-incremento ++, pre-decremento --, negazione aritmetica -  media precedenza  post-incremento ++ e post-decremento --  bassa precedenza  moltiplicazione *, divisione / e modulo %  minima precedenza  somma + e sottrazione –

20 OperatoreIstruzioneSignificato = = ; …già visto! += += ; = + -= -= ; = - *= *= ; = * /= /= ; = / %= %= ; = % Operatori di assegnamento

21 Il cast dei dati Si è detto che il valore da assegnare ad una variabile deve essere del suo stesso tipo. Cosa succede dunque se si tenta di assegnare ad una variabile di un tipo un valore di tipo diverso? Il cast rappresenta l’operazione di conversione di tipo ed è consentito tra tipi primitivi (ad esempio tra int e float). Il cast può essere:  implicito  avviene automaticamente in quanto è un’operazione sicura che non comporta perdita di informazione  esplicito  avviene ad opera del programmatore che forza la conversione anche a costo di una perdita di informazione

22 Il cast dei dati Il cast implicito avviene automaticamente quando ad una variabile di tipo “più alto” viene assegnato un valore di tipo “più basso”. Ad esempio: float f; int x=10; f=x; I tipi primitivi numerici possono essere ordinati dal “più basso” al “più alto” nel modo seguente: byte  short  int  long  float  double Il valore di x (10) viene automaticamente convertito in floating point  10.0 e quindi assegnato alla variabile f

23 Il cast dei dati Il cast esplicito deve essere esplicitato (anteponendo, al valore da assegnare, il tipo scritto tra parentesi tonde) quando ad una variabile di tipo “più basso” viene assegnato un valore di tipo “più alto”. Ad esempio: int x; double d=3.6; x=(int)d; I tipi primitivi numerici possono essere ordinati dal “più basso” al “più alto” nel modo seguente: byte  short  int  long  float  double Il valore di d (3.6) viene “a forza” convertito in intero  3 e quindi assegnato alla variabile x