La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.

Presentazioni simili


Presentazione sul tema: "Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode."— Transcript della presentazione:

1 Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode –Stringa (String) Booleane (boolean)

2 Dichiarazione e inizializzazione dichiarazione: il compilatore mette a disposizione la memoria adatta, per salvare un certo tipo di dato; inizializzazione: all’area di memoria viene assegnato un valore: prima non si sapeva cosa contenesse la varabile. SE, AD ESEMPIO CERCO DI STAMPARE A MONITOR UNA VARIABILE PRIMA DI INIZIALIZZARLA, QUALE VALORE DOVREBBE VENIRE STAMPATO? NON E’ POSSIBILE DIRLO! IL COMPILATORE QUINDI CI OBBLIGA A DARE UN VALORE AD OGNI VARIABILE DICHIARATA PRIMA DI POTERLA USARE!

3 Operatori (slide 32,33) Matematici: + -(differenza) / * % e -(negazione) Logici : &&(AND), ||(OR), ! (NOT ) Confronto: == !=, e speciale “? :” Assegnamento: è sempre l’ultimo ad essere effettuato

4 Scorciatoie: a=a+1; può essere scritta come a++; o ++a; …analogamente per sottrarre 1! a=a+b; può essere scritta a+=b; …identico per gli altri operatori matematici!

5 Espressioni Qualsiasi istruzione dove è presente uno o più operatori e le variabili su cui operano, è un’espressione. Ogni espressione viene risolta “a pezzi”, risolvendo prima le operazioni con precedenza maggiore. Vediamo un esempio!

6 Espressioni (cont…) int a = 1; a++ * 3; //A cosa corrisponde? ++a * 3; // e se dopo ci fosse quest’altra espressione? In casi semplici non ci sono problemi ma per: ++a +b / a++ * a++ // NON SAREBBE OVVIO E’ SEMPRE MEGLIO USARE LE PARENTESI ((++a)+b)/((a++)*(a++)) Vedere ‘esempioEspressioni.java’

7 Attenzione Esistono delle differenze quando operiamo sui numeri interi o sui decimali, perché sono codificati in maniera diversa! Ad esempio i decimali prevedono la codifica per alcuni valori speciali: Nan e Infinity. Gli interi NO; Nella divisione per zero, ad esempio, avrò 2 comportamenti differenti! Esercizi slide 52 e 54.

8

9 Conversioni tra tipi Esistono due tipi di conversioni: –Promozione, automatica –Casting, deve essere forzata Tabella riassuntiva, slide 62 Esempio slide 63.

10 Overflow e underflow Le variabili di tipo NUMERICO sono codificate su un’area di memoria finita, quindi possono rappresentare un numero di codifiche FINITO => non possono rappresentare TUTTI i numeri. Quando cerchiamo di mettere un valore troppo grande per il tipo di variabile utilizzata, si dice che avviene un overflow! Viceversa con un valore troppo piccolo avverrà un underflow!

11 Overflow e underflow (cont…) Siccome i tipi interi e decimali sono codificati differentemente, gestiranno diversamente questi errori: i float e double approssimano i numeri molto grandi(10 ^9999999 ) con ‘Infinity’ e numeri molto piccoli(10 ^-999999999 ) con zero; Per i tipi interi interi invece non viene segnalato nessun errore!!! Ma il risultato dell’assegnamento è sbagliato.

12 Type-Wrapper Ogni tipo fondamentale ha associato un particolare oggetto, detto type-wrapper, avente lo stesso nome del tipo ma con l’iniziale maiuscola. Tramite questo oggetto è possibile accedere ai valori MIN_VALUE e MAX_VALUE, contenenti rispettivamente il minimo e il massimo valore memorizzabile. Esempio slide 71

13 Costanti Una costante è un’area di memoria contenente un valore che non viene modificato durante l’esecuzione del programma. Una costante si dichiara esattamente come una variabile, facendo precedere le parole chiave final static alla dichiarazione.

14 Stringhe Il tipo di dato String, inizia con la prima lettera maiuscola. Questo significa che non è un tipo semplice, ma è una “classe”. Senza addentrarci in dettaglio su cos’è una classe, possiamo immaginarla come una scatola, dove dentro ci sia un dato, che delle operazione, chiamate metodi, che lo manipolano…

15 String Ogni stringa deve essere racchiusa i doppi apici “” e può contenere sia caratteri normali e sia speciali, quali: –Tabulazione, –Ritorno a capo, … Il modo per scrivere un carattere speciale, all’interno di un una stringa è usare il carattere di ‘escape’ ovvero ‘\’ Tabella slide 77

16 esempio String primaStringa = “la mia directory è: \n\t \“e:\\eserciziJava\” ”

17 concatenazione L’operazione di concatenamento, ottenuta tramite l’operatore +, giustappone una stringa a un’altra stringa. File d’esempio *.java

18 Operazioni con le stringhe Il modo per utilizzare le operazioni definite per il tipo di dato String è in seguente: –Il nome della variabile di tipo String –Il carattere di punto (.) –Il nome della funzione seguito da parentesi tonde, contenenti eventuali argomenti separati da virgole

19 Come funziona un metodo Un metodo deve essere String miaStringa = “…” miaStringa.nomeDelMetodo( parametri input) Parametro in output

20 Metodi utilizzati: length() charAt(posizione) subString(posInizio, posFine) indexOf(“stringa da cercare”) indexOf( “stringa da cercare”,posDaCuiCercare )

21 Riguardate gli esempi nelle slide 81, 83, 85, 88. Provate a fare le modifiche suggerite negli esercizi riassuntivi.


Scaricare ppt "Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode."

Presentazioni simili


Annunci Google