Laboratorio di Program- mazione II Tipi di dati primitivi Strutture di Controllo Esercizi Cicli Cicli Annidati Esercizi Cicli Annidati Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona
25
Embed
Laboratorio di Programmazione II - Corso di Laurea in Bioinformatica Dipartimento di ...profs.sci.univr.it/.../courses/algBio/slides/controllo.pdf · 2019. 3. 11. · Laboratorio
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Laboratoriodi Program-
mazioneII
Tipi di datiprimitivi
Strutture diControllo
Esercizi Cicli
CicliAnnidati
Esercizi CicliAnnidati
Laboratorio di Programmazione IICorso di Laurea in Bioinformatica
Dipartimento di Informatica - Università di Verona
Laboratoriodi Program-
mazioneII
Tipi di datiprimitivi
Strutture diControllo
Esercizi Cicli
CicliAnnidati
Esercizi CicliAnnidati
Sommario
tipi di dati primitivicondizioniciclicicli annidati
Laboratoriodi Program-
mazioneII
Tipi di datiprimitivi
Strutture diControllo
Esercizi Cicli
CicliAnnidati
Esercizi CicliAnnidati
Tipi di dati primitivi
Laboratoriodi Program-
mazioneII
Tipi di datiprimitivi
Strutture diControllo
Esercizi Cicli
CicliAnnidati
Esercizi CicliAnnidati
Tipi di dati primitivi
Tipi di dati primitiviper alcuni tipi di dati Java mette a disposizione unarappresentazione molto efficenteEsempi: dati numerici (interi, numeri decimali, etc.),booleani, caratteriTipi di dati primitivi NON sono degli oggetti (ma esistonodegli oggetti per rappresentarli)Variabili non contengono riferimenti ad oggetti madirettamente i valori (e.g., numero intero)Possono essere manipolati tramite simboli standard (e.g.,+,*,/)Gli interi vengono rappresentati tramite il tipo primitivo int
Laboratoriodi Program-
mazioneII
Tipi di datiprimitivi
Strutture diControllo
Esercizi Cicli
CicliAnnidati
Esercizi CicliAnnidati
Esempio tipi di dati primitivi
Example (Esempio interi)
int a = 1;int b = 1;a = a+b;a = a+1;System.out.println(a); //stampa 3int c = a/2; //divisione tra interiSystem.out.println(c); //stampa 1int d = a%2; //resto della divisioneSystem.out.println(d); //stampa 1
Laboratoriodi Program-
mazioneII
Tipi di datiprimitivi
Strutture diControllo
Esercizi Cicli
CicliAnnidati
Esercizi CicliAnnidati
Assegnamento composto
Operatori di assegnamento compostoSpesso si aggiorna il valore di una variabile come segue: x= x op valorex e’ una variabile; op e’ un operatore (+,*,/, etc.) e valoree’ un valorea = a + 2 incrementa il valore di a di due unita’Esistono speciali operatori per scrivere queste operazioni inmaniera’ piu’ direttax op= valorea += 2 incrementa il valore di a di due unita’op = +,-,*,/,%Per incrementare (decrementare) di uno: x ++ (x −−)
Laboratoriodi Program-
mazioneII
Tipi di datiprimitivi
Strutture diControllo
Esercizi Cicli
CicliAnnidati
Esercizi CicliAnnidati
Operatori composti
Example (Esempio operatori composti)
int a = 1;a += 2; // a = a + 2;System.out.println(a); //stampa 3a *= 3; // a = a * 3System.out.println(a); //stampa 9a++; // a = a + 1; a += 1;System.out.println(a); //stampa 10
Laboratoriodi Program-
mazioneII
Tipi di datiprimitivi
Strutture diControllo
Esercizi Cicli
CicliAnnidati
Esercizi CicliAnnidati
Altri tipi di interi
long, short e byteint usa 32 bit per la rappresentazione, hanno unarappresentazoine limitata (-2 miliardi a +2 miliardi circa).long usa 64 bitposso assegnare int a long, non perdo informazioniposso usare il cast per assegnare long ad int (posso perdereinformazioni)i letterali long sono seguiti da una Lshort: interi ad 16 bit, byte: interi a 8 bitper short e byte valgono regole di assegnazione simili aquelle per interi e long: se non perdo informazioni ok,altrimenti devo usare cast.
Laboratoriodi Program-
mazioneII
Tipi di datiprimitivi
Strutture diControllo
Esercizi Cicli
CicliAnnidati
Esercizi CicliAnnidati
Tipo primitivo long
Example (Esempio long)
long l = 10; //letterale interoint o = (int) l; //ok, ma necessario castl = 10000000000L; //devo usare LSystem.out.println(l); //stampa 1000000000long la = o; //okint w = (int) l; //ok, ma perdo infoSystem.out.println(w); //stampa 1410065408
Laboratoriodi Program-
mazioneII
Tipi di datiprimitivi
Strutture diControllo
Esercizi Cicli
CicliAnnidati
Esercizi CicliAnnidati
Altri tipi di dati primitivi
float e doublefloat modella numeri in virgola mobile (precisione di circa 7cifre, range di valori molto ampio )double doppia precisione rispetto a float (circa 15 cifre)I float (e double) usano la notazione scientifica (perstampa e letterali)3.4028235E38 (3.4028235 x 1038)i letterali float sono seguiti da una f, i letterali double sonoseguiti da una dgli operatori sono gli stessi degli int, tranne %; l’operatore/ rappresenta la divisione tra realiper double e float valgono regole di assegnazione simili along ed int: se non perdo informazioni ok, altrimenti devousare cast.
boolean e charboolean rappresenta valori booleaniletterali sono true e falsechar rappresenta caratteri secondo lo standard Unicode a16-biti letterali sono caratteri (’a’) e simboli speciali (’@’)
Example (Esempio float e double)
boolean t = true;System.out.println(t); //stampa truechar c = ’@’;System.out.println(c); //stampa @
Laboratoriodi Program-
mazioneII
Tipi di datiprimitivi
Strutture diControllo
Esercizi Cicli
CicliAnnidati
Esercizi CicliAnnidati
Oggetti per tipi primitivi
Classi associate ai tipi primitiviOgni tipo primitivo ha associata una classee.g., int associato a Integer, double a Double, etc.alcuni metodi delle classi corrispondenti sono molto utiliper la gestione dei tipi primitvi
Example (Esempio di uso classi associate)
int i = Integer.parseInt("1976");System.out.println(i+1);//stampa 1977double d = Double.parseDouble("3.14");int max = Integer.MAX_VALUE;System.out.println(max); //stampa il massimo intero
Media1 Scrivere un programma che produca la seguente stampa:
******
dove l’altezza deve essere un parametro passato da inputSoluzione:StampaAsterischi.java
2 Scrivere un programma che produca la seguente stampa(l’altezza della piramide è un dato passato da input):
****
*****
trovare la relazione che lega il numero della riga ed ilnumero di spazi ed asterischi da stampare per ciascuna rigaSoluzione: StampaPiramideAsterischi.java