Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013"

Transcript

1 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013

2 Tipi di Dato Costanti Identificatori Parole riservate La classe String Sommario Lettura da input di dati numerici Stampa di dati numerici Uno sguardo al codice Operatori base La classe Math 16/01/2013 2

3 Tipo di Dato In Java esistono due categorie di tipi di dato: Tipi di dato primitivi Tipi di dato complessi (classi) inoltre, in Java il programmatore ha la possibilità di definire dei nuovi tipi di dato. Tra i tipi di dato complessi finora abbiamo visto soltanto: la classe String per definire sequenze di caratteri alfanumerici 16/01/2013 3

4 Tipi di Dato primitivi I tipi di dato primitivi di Java sono: Tipi numerici: byte-interodi 8 bit consegno [-128,+127] short-interodi16 bit consegno [-2 15, ] int-intero di32 bit consegno [-2 31, ] long-intero di 64 bit consegno [-2 63, ] float-floating-point di 32 bit IEEE754 double-floating-point di 64 bit IEEE754 Altri tipi: boolean -tipo enumerativo(true, false) char -carattere di16 bit (Unicode) 16/01/2013 4

5 Costanti Costanti intere di tipo long: L L Costanti reali di tipo float: e+3 1.0E f Costanti di tipo boolean: true false Costanti di tipo char: a % \n Costanti di tipo stringa: prova\n prova 16/01/2013 5

6 Dichiarazione di variabili Ogni variabile deve essere dichiarata prima di essere usata Sintassi : <tipo> < identificatore>[=<valore>][,<identificatore>[=<valore>] ] <tipo> : tipo primitivo, nome di una classe <identificatore> :nome della variabile <valore>: valore di inizializzazione Esempio: int a=1, b=2; char x = x ; 16/01/2013 6

7 Dichiarazione di variabili di tipo stringa String cognome,nome; Classe separatore Identificatori di variabili Termine istruzione In questo modo, abbiamo definito 2 variabili tali che: il nome è cognome e nome; il tipo è String, ovvero queste variabili sono stringhe; Il valore dipenderà dall input. 16/01/2013 7

8 Identificatori Gli identificatori sono le parole usate dal programmatore per definire variabili, classi metodi CONVENZIONI: I nomi delle classi sono per convenzione maiuscoli I nomi di metodi, variabili e oggetti per convenzione sono minuscoli I nomi composti usano secondo la quale le parole vengono riportate in minuscolo, una di seguito all altra senza caratteri di separazione, usando un carattere maiuscolo come lettera iniziale di ogni parola. Esempio: NomeClasse nomemetodo() nomevariabile 16/01/2013 8

9 Identificatori Gli identificatori sono le parole usate dal programmatore per definire variabili, classi metodi Iniziano con una lettera o con il carattere _ o $ Il resto dell identificatore può contenere sia lettere che numeri, o il carattere _ Devono essere diversi dalle parole riservate Possono avere qualsiasi lunghezza Un identificatore non può iniziare con una cifra Java è sensibile alle maiuscole (case sensitive) Totale e totale sono identificatori diversi 16/01/2013 9

10 Identificatori Alcuni identificatori sono definiti da noi Altri già definiti sono detti parole riservate e hanno un significato prestabilito 16/01/

11 Parole riservate Sono gli identificatori predefiniti nel linguaggio che hanno un significato prestabilito : abstract boolean break byte byvalue case cast catch char class const continue default do double else extends false final finally float for future generic goto if implements import inner instanceof int interface long native new null operator outer package private protected public rest return short static super switch synchronized this throw throws transient true try var void volatile while 16/01/

12 Parole riservate in rosso alcuni identificatori predefiniti nel linguaggio che già conosciamo: abstract boolean break byte byvalue case cast catch char class const continue default do double else extends false final finally float for future generic goto if implements import inner instanceof int interface long native new null operator outer package private protected public rest return short static super switch synchronized this throw throws transient true try var void volatile while 16/01/

13 Spazi vuoti Gli spazi, le righe vuote e le tabulazioni sono chiamati spazi bianchi Gli spazi bianchi sono usati per separare le parole e i simboli di un programma Gli spazi bianchi vengono ignorati dal compilatore Un programma Java può essere formattato come si desidera con gli spazi bianchi La formattazione migliora la leggibilità di un programma 16/01/

14 Variabili La variabile è un contenitore di dati allocati nella memoria del calcolatore dove il programma in esecuzione memorizza i vari valori prima di giungere al termine dell esecuzione. 16/01/

15 La creazione di un oggetto String può essere: esplicita: String s= new String( parola ); implicita: String s = parola ; 16/01/

16 La classe String L uso delle stringhe (sequenze di caratteri alfanumerici) nei programmi è molto frequente Per tale motivo, l API di Java offre una classe con molti metodi utili per la gestione delle stringhe, la classe String 16/01/

17 Metodi degli oggetti String Vogliamo illustrare alcuni metodi degli oggetti String, frequentemente utilizzati nei programmi. int length (). char charat (int pos). boolean equals (String s). int compare To (String s). int index Of (String s). String substring (int startpos, int stoppos). String to UpperCase () 16/01/

18 Il metodo length La lunghezza di una stringa è il numero dei suoi caratteri. ad esempio, la stringa ciao mondo! ha lunghezza 11 Il metodo length() puo essere invocato su un oggetto String per sapere la lunghezza della sequenza di caratteri che oggetto rappresenta String str = new String ( ciao mondo! ); int a = str.length(); // a vale ll 16/01/

19 Il metodo charat In una stringa, ogni carattere occupa una posizione, crescente da sinistra verso destra il primo carattere a sinistra occupa la posizione O, il secondo carattere la posizione 1, e così via (nota che uitimo carattere occupa Ia posizione length() 1) Il metodo charat restituisce il carattere (valore char) nella posizione specificata String str = new String ( ciao mondo! ); Char c = str.charat(5); // c vale m 16/01/

20 Il metodo equals II metodo equals e usato per confrontare due oggetti String se il loro stato e uguale equals restituisce true, altrimenti restituisce false String str = new String ( ciao mondo! ): String strl = new String ( ciao mondo! ); boolean uguali; uguali = str.equals(strl): // uguali vale true.. ricorda che (str == str1) vale false!!! Per capire se due stringhe rappresentano la stessa sequenza di caratteri si deve sempre usare equals e non operatore relazionale == 16/01/

21 Il metodo substring II metodo substring permette di estrarre una sottostringa da una stringa; invocazione: str.substring ( inizio, fine) restituisce un nuovo oggetto String che rappresenta le sottostringa di str dalla posizione inizio (inclusa) alle posizione fine (esclusa) String str = new String ( ciao mondo! ); String s = str.substring (3,8); /* s rappresenta le stringa o mon" */ 16/01/

22 I due oggetti creati sono analoghi, perchè hanno lo stesso stato, ma sono oggetti differenti!! l espressione str == str1 vale false 16/01/

23 Metodi principali della classe String In riferimento a: String s = parola length(): ritorna la lunghezza della stringa int len = s.length(); // len == 6 charat(int i): ritorna il carattere in posizione i-esima char c=s.charat(0) // c == p indexof(char c): ritorna l indice della prima occorrenza del carattere indicato int i=s.indexof( o ) // i == 3 lastindexof(char c): come sopra ma per l ultima occorrenza di char substring(int da, int a): ritorna una sottostringa String sub = s.substring(2,4) // sub== ro 16/01/

24 Lettura di dati numerici 16/01/

25 ricordiamo l istruzione di lettura di una stringa InputStreamReader In = new InputStreamReader(System.in); BufferedReader Tastiera = new BufferedReader(In); String cognome,nome; System.out.print("Immetti cognome: "); cognome=tastiera.readline(); System.out.print("Immetti nome: "); nome=tastiera.readline(); System.out.println("Sono "+cognome+" "+nome); 16/01/

26 Istruzione di lettura Per le operazioni di lettura esiste System.in un oggetto analogo a System.out, che gestisce il flusso dei dati da tastiera. Ma per leggere i dati da input è un po più complicato in quanto è necessario prima di tutto definire un oggetto (es. In) in grado di acquisire i dati digitati in input ed inoltre, creare un oggetto (es. Tastiera ) appartenente alla classe BufferedReader, che consente tramite il metodo readline() di leggere dallo standard input una riga alla volta. 16/01/

27 Istruzione di lettura di dati numerici..in questo modo leggerei una stringa di caratteri numerici! InputStreamReader In = new InputStreamReader(System.in); BufferedReader Tastiera = new BufferedReader(In); String numero; System.out.print("Immettere un numero : "); numero=tastiera.readline(); System.out.println("numero inserito: " + numero); 16/01/

28 Istruzione di lettura..per leggere un dato numerico è necessario: InputStreamReader In = new InputStreamReader(System.in); BufferedReader Tastiera = new BufferedReader(In); int numero; System.out.print("Immettere un numero : "); numero=integer.parseint(tastiera.readline()); System.out.println("numero inserito: " + numero); 16/01/

29 Istruzione di lettura In questo modo, abbiamo definito una variabile..per leggere un dato tale che: numerico in modalità standard il suo nome è numero; il suo tipo è int, ovvero questa variabile InputStreamReader In memorizzerà = new InputStreamReader(System.in); un numero intero; BufferedReader Tastiera dopo = che new la BufferedReader(In); riga di codice int numero; verrà eseguita viene riservato uno spazio di memoria int numero; per la variabile numero di dimensione adeguata (32 bit) a contenere un numero intero System.out.print("Immettere il suo valore un numero dipenderà : "); dall input. numero=integer.parseint(tastiera.readline()); System.out.println("numero inserito: " + numero); 16/01/

30 16/01/

31 16/01/

32 16/01/

33 Dichiarazione di variabili di tipo int int numero=0; Tipo intero Identificatore di variabile con inizializzazione Termine istruzione 16/01/

34 Istruzione di lettura int numero=0; System.out.print("Immettere un numero : "); numero=integer.parseint(tastiera.readline()); System.out.println("numero inserito: " + numero); Classe wrapper Metodo che converte una stringa in intero 16/01/

35 Le classi wrapper Sono classi involucro per tipi primitivi Servono per trattare i tipi primitivi come oggetti Trasformano un tipo primitivo in un oggetto equivalente Mettono a disposizione un gran numero di metodi static La classe wrapper ha quasi lo stesso nome del tipo primitivo che incapsula ma iniziale maiuscola int Integer 16/01/

36 Lettura di numeri con metodi statici delle classi wrapper Integer.parseInt(s) public static int parseint(string s) Double.parseDouble(s) public static double parsedouble(string s) Float.parseFloat(s) public static float parsefloat(string s) Long.parseLong(s) public static long parselong(string s) Short.parseShort(s) public static short parseshort(string s) 16/01/

37 Esempio metodo per leggere una stringa da un canale di input (es. showinputdialog della classe JOptionPane) metodo statico parseint della classe Integer per ottenere il numero contenuto nella stringa String s = JOptionPane.showInputDialog("Inserisci un numero intero"); int i = Integer.parseInt(s); oppure int i = Integer.parseInt (JOptionPane.showInputDialog("Inserisci un numero intero")); Si noti che se la stringa inserita non contiene numeri viene segnalato un errore quando il codice viene eseguito. public class LeggiInt { public static void main(string[] args) { int i = Integer.parseInt (JOptionPane.showInputDialog ("Inserisci un numero intero")); System.out.println ( Intero Immesso: + i); } 16/01/ }

38 16/01/

39 Dichiarazione di variabili di tipo reale float x=0; double y=0; Tipo reale Identificatore di variabile con inizializzazione Per eseguire operazioni con numeri in virgola mobile utilizzeremo gli operatori matematici classici, ossia +, -, * e /, che indicano rispettivamente le operazioni di addizione, sottrazione, moltiplicazione e divisione. A differenza di quanto succede con i numeri interi, questa volta non viene persa l'informazione sulla parte decimale. 16/01/

40 Istruzione di lettura..per leggere un dato numerico è necessario: InputStreamReader In = new InputStreamReader(System.in); BufferedReader Tastiera = new BufferedReader(In); float x=0; System.out.print("Immettere un numero : "); x=float.parsefloat(tastiera.readline()); System.out.println("numero inserito: " + numero); 16/01/

41 Boolean.parseBoolean("true"); Byte.parseByte(String s) Le altre classi wrapper 16/01/

42 Operatori base per gli interi I principali operatori Java per i numeri interi sono gli operatori aritmetici classici: +,, *, A dove il simbolo * e / indicano rispettivamente il prodotto e la divisione fra interi le regole di precedenza sono le stesse utilizzate nell algebra si possono usare le parentesi tonde per forzare le precedenze le parentesi tonde possono avere un qualunque livello di annidamento 16/01/

43 L operatore resto Un ulteriore operatore aritmetico tra interi molto utilizzato è l operatore resto, denotato con %. se x ed y sono variabili o letterali interi, x%y restituisce il resto della divisione intera tra x ed y in pratica deve sempre risultare che l espressione y*(x/y) + x%y ha lo stesso valore di x 16/01/

44 Assegnazione ed espressioni Un operazione di assegnazione si compone sempre di due parti, quella a sinistra di =" e quella a destra di "= la parte a sinistra deve sempre essere una variabile; la parte a destra può essere una qualunque espressione; Java valuta prima il valore dell espressione a destra di "=" e poi assegna il valore di tale espressione alla variabile a sinistra di "=" il tipo di dato del valore associato all espressione deve essere compatibile con quello della variabile 16/01/

45 Operatori di assegnazione composta Le assegnazioni del tipo a = a+1 sono molto frequenti nei programmi, perché servono ad incrementare (o decrementare) il valore di una variabile Per snellire i codici dei programmi, Java permette di usare degli operatori di assegnazione composta a += x a = x a *= x a /= x a %= x equivale a scrivere a = a+x equivale a scrivere a = a-x equivale a scrivere a = a*x equivale a scrivere a = a/x equivale a scrivere a = a%x 16/01/

46 Operatore di assegnazione composta o autoassegnamento 16/01/

47 Operatori di incremento e decremento Esistono anche due ulteriori operatori, detti operatore di incremento (++) ed operatore di decremento (--) a++ equivale a scrivere a = a+1 a-- equivale a scrivere a = a-1 La forma a++ è detta suffissa, ma è anche possibile usare una forma prefissa, cioè ++a Se gli operatori ++ e -- sono usati in espressioni composte le regole di precedenza variano in funzione della forma (prefissa o suffissa) utilizzata 16/01/

48 Operatori di incremento e decremento Esempi di uso di ++ e -- in espressioni composte: Nella notazione suffissa, gli operatori ++ e -- vengono applicati solo dopo la valutazione dell espressione; in quella prefissa vengono valutati prima (con precedenza rispetto agli altri operatori) 16/01/

49 Operatori di base per i numeri reali Per i reali valgono gli stessi operatori visti in precedenza per gli interi Per eseguire operazioni con numeri in virgola mobile utilizzeremo gli operatori matematici classici, ossia +, -, * e /, che indicano rispettivamente le operazioni di addizione, sottrazione, moltiplicazione e divisione. A differenza di quanto succede con i numeri interi, questa volta non viene persa l'informazione sulla parte decimale. 16/01/

50 16/01/

51 Dichiarazione di variabili di tipo reale float x=0; double y=0; Tipo reale Identificatore di variabile con inizializzazione 16/01/

52 Dichiarazione e uso di variabili numeriche float o double float x=0; double y=0; Tipo reale Identificatore di variabile con inizializzazione 16/01/

53 System.out.println("Benvenuto al corso di Java"); InputStreamReader In = new InputStreamReader(System.in); BufferedReader Tastiera = new BufferedReader(In); float a=8.0f; float x=0; float r=0; float w=0; System.out.print("Immettere un numero : "); x=float.parsefloat(tastiera.readline()); //x++; //System.out.println("numero inserito: " + (++x)); r=a/x; w= (int)a/(int)x; float k=a%x; System.out.println("numero inserito: " + r); System.out.println("numero inserito: " + w); System.out.println("numero inserito: " + k); 16/01/

54 Espressioni che coinvolgono più tipi primitivi numerici Durante la valutazione di un'espressione che coinvolge tipi di dato congruenti (es. numerici) ma non omogenei il risultato viene valutato nel dominio più grande. Ad esempio se in una espressione sono coinvolti un tipo intero ed un tipo il risultato sarà di tipo reale. Vediamo una tabella che descrive il tipo risultante di una espressione della forma a+b per ciascuna coppia di tipi possibili di a e di b 16/01/

55 16/01/

56 Assegnazioni fra tipi di dato primitivi numerici diversi Un valore di un tipo di dato non può essere assegnato ad una variabile di un tipo di dato con minor dimensione, altrimenti si rischia la perdita di precisione dell'informazione. int a; long b; a = b; un valore long non può essere assegnato ad una variabile int int a; float b; a = b; un valore float non può essere assegnato ad una variabile int 16/01/

57 Casting Per riuscire ad eseguire delle assegnazioni di tipo forzate occorre fare una conversione esplicita o cast esempio int a = (int) 3.14; //conversione (cast) a int dell'espressione 3.14 (di tipo double) System.out.println(a); // stampa 3 Sintassi: (tipo) espressione; tipo è il nome di un tipo di dato espressione è una espressione o un valore il cui risultato verrà forzato a diventare di un altro tipo Semantica: si converte il tipo di una espressione ad un altro tipo in modo da rendere possibili operazioni che coinvolgono tipi altrimenti incompatibili Effettuando un cast, il risultato potrebbe essere affetto da perdita di precisione: nell'esempio precedente 3.14 viene arrotondato a 3 16/01/

58 Casting se si vuole ottenere il numero reale che deriva dalla divisione dei due numeri interi x e y, bisogna prima trasformarli in reali: float risultatoreale = (float ) x / (float) y; 16/01/

59 Casting Il casting può essere implicito o esplicito. Nel primo caso la conversione di tipo viene eseguita automaticamente in quanto si tratta di una operazione sicura. Nel secondo caso è il programmatore che, con cognizione di causa, forza la conversione in quanto potrebbe risultare pericolosa in termini di perdita di dati. La conversione implicita è sempre sicura infatti si converte un tipo di dato che occupa meno spazio in memoria verso un tipo di dato più grande. La conversione esplicita potendo essere pericolosa (infatti per far entrare un dato grande in uno più piccolo, occorre necessariamente eliminare la parte in eccesso con conseguenza perdita di dati) richiede una forzatura sul codice. 16/01/

60 Operatori per tipi numerici e char Operatori binari di confronto Operatore Descrizione == x == y true se x = y >= x >= y true se x >= y!= x!= y true se x y < x < y true se x < y > x>y true se x > y 16/01/

61 16/01/

62 ..riassumendo Lettura di un intero Si legge una stringa (con il metodo readline applicato all oggetto Tastiera ) Tastiera.readLine() e la si converte in intero (con il metodo parseint applicato alla classe wrapper Integer ) Integer.parseInt 16/01/

63 InputStreamReader In = new InputStreamReader(System.in); BufferedReader Tastiera = new BufferedReader(In); int numero=0; Inizializzazione variabile System.out.print("Immettere un numero : "); numero=integer.parseint(tastiera.readline()); System.out.println("numero inserito: " + numero); 16/01/

64 ..andiamo a editare il programma int numero=0; System.out.print("Immettere un numero : "); numero=integer.parseint(tastiera.readline()); System.out.println("numero inserito: " + numero); 16/01/

65 import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstreamreader; public class LeggiNumero { /** args IOException NumberFormatException */ public static void main(string[] args) throws NumberFormatException, IOException { // TODO Auto-generated method stub InputStreamReader In = new InputStreamReader(System.in); BufferedReader Tastiera = new BufferedReader(In); int numero; System.out.print("Immettere un numero: "); numero=integer.parseint(tastiera.readline()); System.out.println("numero inserito: " + numero); 16/01/ }

66 Overflow numerico L'insieme dei valori rappresentabili mediante un tipo primitivo è limitato ad un dato intervallo (es. [-2 7, per il tipo byte) (es. [-2 31, per il tipo int) Applicando operatori aritmetici a valori di un dato tipo si potrebbe avere overflow (trabocco) nel caso in cui il risultato dell'operazione non possa essere rappresentato mediante il tipo stesso int s = ; // massimo valore rappresentabile con int int t = s + 1; System.out.println("numero inserito: " + s+" "+t); // operazione affetta da overflow System.out.println(y); // cosa stampa? 16/01/

67 Overflow numerico L'insieme dei valori rappresentabili mediante un tipo primitivo è limitato ad un dato intervallo (es. [-2 7, per il tipo byte) (es. [-2 31, per il tipo int) Applicando operatori aritmetici a valori di un dato tipo si potrebbe avere overflow (trabocco) nel caso in cui il risultato dell'operazione non possa essere rappresentato mediante il tipo stesso int s = ; // massimo valore rappresentabile con int int t = s + 1; System.out.println("numero inserito: " + s+" "+t); // operazione affetta da overflow System.out.println(y); // cosa stampa? 16/01/

68 16/01/

69 La classe Math Per calcolare funzioni matematiche su valori di tipo numerico in Java esiste una classe apposita contenente dei metodi statici predefiniti che calcolano tali funzioni. La classe predefinita Math contiene numerose funzioni e costanti per operazioni sui valori di tipo numerico, come radice quadrata (sqrt), valore assoluto (abs), ecc. Potete trovare la tabella completa in: /01/

70 La classe Math La classe Math contiene metodi (funzioni) e costanti all interno del package java.lang che viene importato automaticamente I metodi della classe Math sono detti statici in quanto non prevedono la creazione di un oggetto.

71 Metodi della classe Math Ecco alcuni metodi della classe Math: static double abs (double a) // ritorna il valore assoluto di a static double pow (double a, double b) // ritorna a b static double sqrt (double a) // ritorna la radice quadrata di a static double sin (double a) // ritorna il seno di a static double cos (double a) // ritorna il coseno di a static double tan (double a) // ritorna la tangente di a static double log (double a) // ritorna il log. di a in base e static double log1o (double a) // ritorna il log. di a in base 10 16/01/

72 Metodi della classe Math Ecco alcuni metodi della classe Math: static double abs (double a) // ritorna il valore assoluto di a static double pow (double a, double b) // ritorna a b static double sqrt Math.pow(base, (double a) // ritorna exp) la radice quadrata di a static double sin (double a) // ritorna il seno di a static double cos (double a) // ritorna il coseno di a static double tan (double a) // ritorna la tangente di a static double log (double a) // ritorna il log. di a in base e static double log1o (double a) // ritorna il log. di a in base 10 16/01/

73 esempi Math.sqrt(64) il risultato è 8 Classe Metodo della classe parametro

74 Costanti nella classe Math La classe Math definisce anche due costanti di uso comune, usando la massima precisione possibile Math.PI la costante = Math.E la costante e = /01/

75 Scrivere un programma Java che dopo aver letto in input il raggio di un cerchio ne calcola l area metodo parametri costante 16/01/

76 Cosa abbiamo imparato finora? Tipi di dato: primitivi :byte, short, int, long,float,boolean, char; complessi:classi. Dichiarare una variabile: <tipo> < identificatore>=<valore> La classe String e i suoi metodi: length(),charat (int pos), equals(string s), compare To(String s),index Of(String s), substring (inizio, fine), to UpperCase () 16/01/

77 Come utilizzare le classi wrapper I vari tipi di operatori: aritmetici: +, -, *, /, % assegnazione: = incremento ++, decremento operatori binari di confronto: ==, >=, >, <,!= operatori logici: &&, Utilizzare la classe Math, i suoi metodi: Math.abs(a), Math.sqrt(a),Math.pow(a,b), Math.sin(a), Math.cos(a) e le sue costanti: Math.E, Math.PI 16/01/

78 Questionario 1)Quante categorie di dati esistono in Java? Due: primitivo e numerici; Due: primitivo e stringa; Due: primitivo e complesso; Una : primitivo. 2)Che cos è una variabile in Java? E un contenitore di dati situati nelle memoria del calcolatore, dove il programma in esecuzione memorizza i vari valori dopo che si è giunti al termine dell esecuzione; E un classe particolare di Java; E un contenitore di dati primitivi situati nelle memoria del calcolatore, dove il programma in esecuzione memorizza i vari valori prima di giungere al termine dell esecuzione ; E un contenitore di dati situati nelle memoria del calcolatore, dove il programma in esecuzione memorizza i vari valori prima di giungere al termine dell esecuzione; 16/01/

79 3)Quali sono i tipi di dato primitivo? short, int, long, float e double; short, int, long, float, double, char, Boolean e string; short, int, long, float, double, char; short, int, long, float, double, char e Boolean. 4)Quale delle seguenti istruzioni è corretta per la creazione di un oggetto stringa? string ciao = new string(ciao); string ciao = nome5 ; String ciao = new String( ciao ); String ciao = new String(ciao2). 5)Quali sono i dati numerici? short, int, long, float e double; short, long, int e double; short e int; short, int, long, float, double e char. 16/01/

80 6)Che differenza c è una variabile di tipo int ed una di tipo long? Il primo rappresenta numeri interi 16bit, il secondo numeri interi a 32bit; Il primo rappresenta numeri interi 16bit, il secondo numeri interi a 64bit. Il primo rappresenta numeri interi 16bit, il secondo numeri reali a 64bit; Il primo rappresenta numeri interi 16bit, il secondo caratteri alfanumerici. 7)Quali sono i possibili valori di una variabile di tipo boolean? Yes o No; true o false; 1 o 0; Numeri interi fino a 16 bit. 8) Che cosa rappresenta String? E un tipo di dato primitivo costituito da una sequenza di caratteri alfanumerici; E un tipo di dato complesso costituito da una sequenza di caratteri alfanumerici; E un tipo di dato primitivo costituito da una sequenza di caratteri alfabetici; E un tipo di dato complesso costituito da una sequenza di caratteri alfabetici 16/01/

81 9) Quale tra i seguenti nomi di variabili non è valido? $Data; data; 1Data; data13. 10) Qual è il tipo di carattere in Java? string; char; int; character. 11)Quale delle seguenti istruzioni è corretta per la creazione di un oggetto stringa? string hello = new string(ciao); string Hi= nome5 ; String hello= new String( ciao ); String hi= new String(ciao2). 16/01/

82 12)A cosa serve il metodo charat()? Il metodo permette di restituire la posizione del carattere specificato; Il metodo permette di restituire il carattere nella posizione specificata; Il metodo permette di cambiare il carattere nella posizione specificata; Il metodo permette di restituire la lunghezza della sequenza di caratteri dell oggetto specificato 13)A cosa serve il metodo length()? Il metodo può essere invocato su un oggetto String per conoscere la lunghezza della sequenza di caratteri che l oggetto rappresenta; Il metodo può essere invocato su un oggetto char per conoscere la lunghezza della sequenza di caratteri che l oggetto rappresenta; Il metodo può essere invocato su un oggetto String per non superare la lunghezza della variabile; Il metodo permette di estendere la lunghezza della sequenza di caratteri dell oggetto specificato. 16/01/

83 14)A cosa serve il metodo equals()? Il metodo permette di confrontare due oggetti interi, se il loro stato è uguale equals restituisce true, altrimenti restituisce false; Il metodo permette di confrontare due oggetti string, se il loro stato è uguale equals restituisce true, altrimenti restituisce false; Il metodo permette di confrontare due variabili primitive, se il loro stato è uguale equals restituisce true, altrimenti restituisce false; Il metodo permette di confrontare due oggetti string, se il loro stato è uguale equals restituisce false, altrimenti restituisce true. 15)A cosa serve il metodo substring()? Il metodo permette di estrarre una sottostringa da una stinga; Il metodo può essere invocato su un oggetto String per conoscere la lunghezza della sequenza di caratteri che l oggetto rappresenta; Il metodo permette di estrarre un carattere da una stinga; Il metodo permette di convertire una stringa in un intero. 16) A cosa serve il metodo parseint()? A convertire un intero in una stringa; A convertire un carattere in un intero; A convertire una stringa in un intero; Il metodo non esiste. 16/01/

84 17)Analizzare la seguente istruzione: String str = new String ( Buongiorno a tutti! ); char s = str.charat(11); cosa viene visualizzato in uscita, quando il metodo va in esecuzione? t; a; niente; Buongiorno tutti!. 18)Se si vogliono confrontare due oggetti di tipo stringa quale operatore bisogna utilizzare? Per capire se hanno la stessa sequenza di caratteri si utilizza l operatore = ; Per capire se hanno la stessa sequenza di caratteri si utilizza l operatore == ; Per capire se hanno la stessa sequenza di caratteri si utilizza il metodo equals; Per capire se hanno la stessa sequenza di caratteri si utilizza il metodo equal 16/01/

85 19) Analizzare la seguente istruzione: String str = new String ( Buongiorno a tutti! ); String s = str.substring(2,15); cosa viene visualizzato in uscita, quando il metodo va in esecuzione? ongiorno a tu; ongiorno a tut; uongiorno a tut; Bu tti. 20) Qual è la differenza tra i due metodi: indexof(char c) e lastindexof(char c)? Il primo metodo ritorna l indice della prima occorrenza del carattere indicato, mentre il secondo metodo l indice di un generico carattere; Il primo metodo ritorna un indice generico, mentre il secondo metodo l indice dell ultima occorrenza del carattere indicato; Non c è nessuna differenza i due metodi sono equivalenti; Il primo metodo ritorna l indice della prima occorrenza del carattere indicato, mentre il secondo metodo l indice dell ultima occorrenza del carattere indicato. 16/01/

86 21) A cosa servono la seguente parte di programma? int numero; system.out.print("immettere un numero : "); numero=integer.parseint(tastiera.readline()); system.out.println("numero inserito: " + numero) Ad aprire una finestra di dialogo e immettere un numero intero da tastiera; L istruzione è errata. Ad aprire una finestra di dialogo e immettere un numero reale da tastiera; A trasformare il numero immesso da tastiera in un carattere. 22) Qual è la differenza tra le due istruzioni: int numero e int numero=5 Servono entrambe a dichiarare una variabile di tipo intero, però la seconda istruzione inizializza anche la variabile numero a 5; Le due istruzioni sono equivalenti; La prima istruzione serve a dichiarare una variabile di tipo intero e la seconda istruzione è errata; Entrambe le istruzioni sono errate. 16/01/

87 23) Se voglio trasformare una stringa in una variabile di tipo reale, quale istruzione di lettura devo utilizzare? Ove possibile con l istruzione: Integer.parseInt(nome stringa); Ove possibile con l istruzione: Float.parseFloat(nome stringa); Sempre con l istruzione: float.parsefloat(nome stringa); Non è possibili eseguire questa operazione. 24) Se voglio trasformare una stringa in una variabile di tipo boolean, quale istruzione di lettura devo utilizzare? Ove possibile con l istruzione: Integer.parseInt(nome stringa); Ove possibile con l istruzione: Float.parseFloat(nome stringa); Non è possibili eseguire questa operazione Ove possibile con l istruzione: Boolean.parseBoolean(nome stringa); 16/01/

88 Esercizi Realizzare un programma in Java che calcoli l area di un trapezio isoscele, introducendo a mano le grandezze utili per calcolare tale valore. Realizzare un programma in Java che letta da INPUT una misura di distanza in Km la converta in miglia e viceversa. 1 km = 0, miglia 1 miglio = 1,609 km Realizzare un programma in Java che letta da INPUT una misura di temperature in gradi Celsius la converta in Fahrenheit e viceversa. F = ( C 1,8) + 32 C = ( F 32) / 1,8 16/01/

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario La classe String Lettura da input di dati numerici (tipo int) Stampa di dati numerici Uno sguardo al codice Esercizi 21/03/2011 2

Dettagli

Uso di metodi statici. Walter Didimo

Uso di metodi statici. Walter Didimo Uso di metodi statici Walter Didimo Metodi di istanza Fino ad ora abbiamo imparato a creare oggetti e ad invocare metodi su tali oggetti i metodi venivano eseguiti dagli oggetti un metodo invocato su un

Dettagli

Riassunto. I mattoni di base di un programma Java. Oggi. Un programma complicato. Oggi. Perché è complicato? Stefano Mizzaro 1.

Riassunto. I mattoni di base di un programma Java. Oggi. Un programma complicato. Oggi. Perché è complicato? Stefano Mizzaro 1. I mattoni di base di un programma Java Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 2 28 settembre

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del

Dettagli

Operazioni numeriche - Input

Operazioni numeriche - Input Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di input 11/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Operazioni fra interi e decimali In Java

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Prima lezione di laboratorio. I mattoni di base di un programma Java. Comandi Unix. Riassunto. Oggi. Un programma complicato.

Prima lezione di laboratorio. I mattoni di base di un programma Java. Comandi Unix. Riassunto. Oggi. Un programma complicato. I mattoni di base di un programma Java Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 2 1 ottobre

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Uso dell ambiente di sviluppo Eclipse API di Java Istruzione di scrittura Istruzione di lettura 16/01/2013 2 Installazione di

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Eccezioni Categorie di eccezioni checked unchecked Gestione delle eccezioni Clausola throws Costrutto try - catch - finally Comando

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147-00161 Roma Università degli Studi La Sapienza Fondamenti di

Dettagli

Programmazione ad Oggetti. Java Parte II

Programmazione ad Oggetti. Java Parte II Programmazione ad Oggetti Java Parte II Overview Caratteristiche lessicali Il primo programma Java 1 Commenti /* Commento tradizionale, eventualmente su più linee, non nidificato */ // Commento su di una

Dettagli

Stringhe e Array. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Stringhe e Array. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni La Classe String In Java le stringhe, a differenza della maggior parte dei linguaggi di programmazione, non sono array di caratteri (char), bensì

Dettagli

Il paradigma di programmazione a oggetti

Il paradigma di programmazione a oggetti Il paradigma di Paradigma a oggetti Il paradigma di Corso di laurea in Comunicazione digitale Formalizza mediante le classi il concetto di modulo che incapsula i dati e le procedure per modificarli Le

Dettagli

Prima lezione di laboratorio. I mattoni di base di un programma Java. Riassunto. Comandi Unix. Oggi. Blog & Group.

Prima lezione di laboratorio. I mattoni di base di un programma Java. Riassunto. Comandi Unix. Oggi. Blog & Group. I mattoni di base di un programma Java Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 2 8 ottobre

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come

Dettagli

La velocità di una carovana

La velocità di una carovana Programmazione A.A. 2002-03 I linguaggio Java ( Lezione X, Parte I ) Il primo programma Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

Dettagli

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C Tipi predefiniti e operatori Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 RICHIAMI char 8 bit Valori interi

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Introduzione Istruzioni

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Istruzioni di controllo Iterative Condizionali Algoritmi e Diagrammi di flusso Esercizi 28/03/2011 2 Istruzioni iterative while do

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 16 Tipi riferimento e stringhe. Carla Limongelli.

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 16 Tipi riferimento e stringhe. Carla Limongelli. Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 16 Tipi riferimento e stringhe Carla Limongelli Maggio 2010 Definizione di metodi 1 Contenuti Tipi riferimento Stringhe e oggetti String

Dettagli

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: Tipi di dato Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: esprimere in modo sintetico la loro rappresentazione in memoria, e un insieme di operazioni ammissibili permettere

Dettagli

L input da tastiera in Java. Dott. Ing. M. Banci, PhD

L input da tastiera in Java. Dott. Ing. M. Banci, PhD L input da tastiera in Java Dott. Ing. M. Banci, PhD La lettura di un flusso di input in Java avviene attraverso l'oggetto in della classe System. System.in appartiene alla classe InputStream (letteralmente

Dettagli

Introduzione a Java. Riferimenti

Introduzione a Java. Riferimenti Introduzione a Java Si ringraziano Massimiliano Curcio e Matteo Giacalone 1: Introduction 1 Riferimenti! Java tutorial: http://java.sun.com/docs/books/tutorial/! Il Java tutorial è parte di una più ampia

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 13. Tipi ed espressioni. Carla Limongelli Aprile Tipi ed espressioni 1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 13. Tipi ed espressioni. Carla Limongelli Aprile Tipi ed espressioni 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 13 Tipi ed espressioni Carla Limongelli Aprile 2010 Tipi ed espressioni 1 Contenuti Tipi di dato Tipi primitivi per numeri interi: il

Dettagli

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Programmazione Java Struttura di una classe, Costruttore, Riferimento this Programmazione Java Struttura di una classe, Costruttore, Riferimento this romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Tipi ed espressioni. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 5. Carla Limongelli Settembre 2007

Tipi ed espressioni. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 5. Carla Limongelli Settembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 5 Tipi ed espressioni Carla Limongelli Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Tipi ed espressioni 1 Contenuti

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Tipi di dato primitivi

Tipi di dato primitivi Tipi di dato primitivi (oltre int) Tipi di dato primitivi int (già trattati) Valori logici (ricordati) Valori reali Valori carattere Informatica - A.A. 2009/2010 - Tipi di dato 2 1 Valori logici (il caso

Dettagli

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)

Dettagli

Conversioni fra Tipi di Dati. Luca Abeni

Conversioni fra Tipi di Dati. Luca Abeni Conversioni fra Tipi di Dati Luca Abeni Tipi di Dato e Conversioni In C, ogni variabile è caratterizzata da un tipo I valori che la variabile può assumere dipendono dal tipo È possibile mescolare variabili

Dettagli

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: 1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente

Dettagli

Keywords abstract default if private this boolean do implements protected throw extends null**

Keywords abstract default if private this boolean do implements protected throw extends null** Keywords abstract default if private this boolean do implements protected throw extends null** *boolean literals ** null literal break double import public throws byte else instanceof return transient

Dettagli

Istruzioni di ripetizione in Java 1

Istruzioni di ripetizione in Java 1 in Java Corso di laurea in Informatica Le istruzioni di ripetizione consentono di eseguire molte volte la stessa Si chiamano anche cicli Come le istruzioni condizionali, i cicli sono controllati da espressioni

Dettagli

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola. Tipi di dato Le variabili in C KP Cap.3 pp.95-129 Cap.5 pp.190-193 DD Cap. 9 pp.352-355 Abbiamo già parlato delle variabili, ed abbiamo fin ora usato il tipo int, ma abbiamo molte altre possibiltà I tipi

Dettagli

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010 Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi

Dettagli

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII. Tipi di dati fondamentali Tipi di dati fondamentali Linguaggi di Programmazione I Ferdinando Cicalese caratteri: char signed char unsigned char interi short int long interi unsigned short unsigned unsigned

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Descrizione delle operazioni di calcolo. Espressioni costanti semplici Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette

Dettagli

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento Linguaggio C Gli Operatori Gli Operatori Gli operatori sono simboli (sia singoli caratteri che loro combinazioni) specificano come devono essere manipolati gli operandi dell espressione Operatori aritmetici

Dettagli

Java Le stringhe. Stringhe

Java Le stringhe. Stringhe Java Le stringhe 1 Le stringhe in Java In Java le stringhe non sono semplicemente array di caratteri terminati con zero come avviene in C In Java le stringhe sono oggetti appartenenti alla classe String

Dettagli

Struttura dei programmi C

Struttura dei programmi C Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte

Dettagli

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio

Dettagli

8 - Stringhe (e altre classi dalla Libreria Standard di Java)

8 - Stringhe (e altre classi dalla Libreria Standard di Java) 8 - Stringhe (e altre classi dalla Libreria Standard di Java) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Dettagli

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin Linguaggio C Tipi predefiniti Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Il concetto di tipo (reprise) Nome che indica

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

Definizione di una classe

Definizione di una classe Classi Le istruzioni sono raggruppate per ottenere una medesima funzionalità (metodo). Le diverse funzionalità (metodi) relative a un oggetto sono raggruppate nella classe. La classe assegna un nome comune

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

Somma di numeri binari

Somma di numeri binari Fondamenti di Informatica: Codifica Binaria dell Informazione 1 Somma di numeri binari 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Esempio: 10011011 + 00101011 = 11000110 in base e una base Fondamenti di

Dettagli

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Domanda n. 1 Argomento: Rappresentazione dell'informazione Domanda: Il numero binario

Dettagli

Indice. Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java. Compilazione ed esecuzione di un programma

Indice. Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java. Compilazione ed esecuzione di un programma Indice Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java Introduzione all ambiente di sviluppo - Compilazione ed esecuzione di un programma - Compilazione ed esecuzione

Dettagli

Modulo 2: Strutture fondamentali della programmazione Java

Modulo 2: Strutture fondamentali della programmazione Java Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

RETI DI CALCOLATORI Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

TIPI PRIMITIVI: LIMITI

TIPI PRIMITIVI: LIMITI TIPI PRIMITIVI: LIMITI I tipi primitivi sono i "mattoni elementari" del linguaggio In varie situazioni può però essere necessario trattare i tipi primitivi come oggetti quando una funzione pretende come

Dettagli

5 - Istruzioni condizionali

5 - Istruzioni condizionali 5 - Istruzioni condizionali Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 LA CODIFICA DELL INFORMAZIONE Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 Codifica dati e istruzioni Per scrivere un programma è necessario rappresentare istruzioni

Dettagli

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

Dettagli

Espressioni. Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica!

Espressioni. Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica! Espressioni Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica! Valutazione automatica di expr aritmetiche = obiettivo primario dei primi LP

Dettagli

Espressioni ed operatori in C

Espressioni ed operatori in C Espressioni ed operatori in C Espressioni Il C è un linguaggio basato su espressioni Una espressione è una notazione che denota un valore mediante un processo di valutazione Una espressione può essere

Dettagli

La codifica. dell informazione

La codifica. dell informazione 00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111

Dettagli

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algebra di Boole Stefano Cagnoni Algebra di Boole L algebra

Dettagli

Introduzione alla programmazione in C(++)

Introduzione alla programmazione in C(++) Testi Testi Consigliati: Introduzione alla programmazione in C(++) A. Kelley & I. Pohl C didattica e programmazione A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. D. M. M. Ritchie

Dettagli

Programmazione web lato client con JavaScript. Marco Camurri 1

Programmazione web lato client con JavaScript. Marco Camurri 1 Programmazione web lato client con JavaScript Marco Camurri 1 JavaScript E' un LINGUAGGIO DI PROGRAMMAZIONE che consente di inserire codice in una pagina web Sintassi simile a Java (e al C), ma NON E'

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Tipi di dato primitivo Tipo Descrizione Range bytes int interi 2147483648 2147483647 4 byte interi -128 127 1 short interi -32768

Dettagli

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI SULL USO DEI CARATTERI Ricordiamo che: int x; si legge con ( %d,&x) e si stampa con ( %d,x) float x; si legge con ( %f,&x) e si stampa con ( %f,x) double x;si legge con ( %lf,&x) e si stampa con ( %f,x)

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case

Dettagli

Riprendiamo l esercizio calcolatrice

Riprendiamo l esercizio calcolatrice Riprendiamo l esercizio calcolatrice Scrivere un programma calcolatrice che legga da tastiera due variabili intere a e b, poi Stampi un menu con un valore numerico associato a quattro operazioni possibili:

Dettagli

18 - Classi parzialmente definite: Classi Astratte e Interfacce

18 - Classi parzialmente definite: Classi Astratte e Interfacce 18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

LINGUAGGI DI PROGRAMMAZIONE!

LINGUAGGI DI PROGRAMMAZIONE! LINGUAGGI DI PROGRAMMAZIONE! Il potere espressivo di un linguaggio è! caratterizzato da:! quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente)! quali istruzioni

Dettagli

Esercizi Programmazione I

Esercizi Programmazione I Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=

Dettagli

Tipi di dato-prima parte

Tipi di dato-prima parte Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Tipi di dato-prima parte Ing. Agnese Pinto 1 di 15 Tipi di dato Sommario Tipi di dato Classificazione dei tipi di dato Tipi

Dettagli

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere Tipi elementari, costanti 1 Tipi di dati VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori Tipi Semplici intero reale carattere Strutturati 2 1 Tipo intero Gli interi servono

Dettagli

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe

Dettagli

Confronti, equals. Operatori Relazionali, confronti Confronti fra Oggetti, ridefinizione di equals. Laboratorio di Programmazione - Luca Tesei

Confronti, equals. Operatori Relazionali, confronti Confronti fra Oggetti, ridefinizione di equals. Laboratorio di Programmazione - Luca Tesei Confronti, equals Operatori Relazionali, confronti Confronti fra Oggetti, ridefinizione di equals 1 Operatori relazionali All interno delle parentesi tonde della condizione dell if è possibile, come abbiamo

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

Laboratorio di Matematica e Informatica 1

Laboratorio di Matematica e Informatica 1 Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi

Dettagli

Corso sul linguaggio C Modulo Tipi di dato

Corso sul linguaggio C Modulo Tipi di dato Corso sul linguaggio C Modulo 1 1.3 - Tipi di dato 1 Prerequisiti Concetto di espressione Cenni sulla struttura del calcolatore 2 1 Introduzione In questa lezione si esaminano i tipi di dato. I tipi di

Dettagli

Tipi di dato. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Tipi di dato. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

Una classe Borsellino. Tipi numerici di base - Costanti. Esempio d uso. Classe Borsellino cont d. Primi passi per l implementazione di Purse

Una classe Borsellino. Tipi numerici di base - Costanti. Esempio d uso. Classe Borsellino cont d. Primi passi per l implementazione di Purse Una classe Borsellino Tipi numerici di base - Interi e decimali Definizione di costanti /** Realizza un borsellino per le monete. Registra il numero di monete e calcola il valore totale public class Purse

Dettagli

Rappresentazione dell Informazione

Rappresentazione dell Informazione Rappresentazione dell Informazione Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali Rappresentazione del testo Una stringa di bit per ogni simbolo

Dettagli

Tipi di dati fondamentali

Tipi di dati fondamentali Tipi di dati fondamentali Tipi primitivi: interi Java fornisce otto tipi primitivi indipendenti dall implementazione e dalla piattaforma Interi Tipo byte (8 bit) Interi con segno tra -128 e 127, valore

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

Tipo intero. Esempio. Tipo intero: operatori. Programma PortaMonete.java. Tipi base o primitivi

Tipo intero. Esempio. Tipo intero: operatori. Programma PortaMonete.java. Tipi base o primitivi Tipo intero Tipi base o primitivi Tipi interi: int, byte, short, long Tipi float: float, double Caratteri: char Tipo booleano: boolean Operatori numerici e logici La parola chiave int definisce una variabile

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli