Soluzione della prova scritta del 5 febbraio 2013

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Soluzione della prova scritta del 5 febbraio 2013"

Transcript

1 Corso di Programmazione Anno Accademico Prof. Giovanni Pighizzini della prova scritta del 5 febbraio 2013 Questo documento discute un esempio di soluzione di alcuni esercizi assegnati. Naturalmente è opportuno cimentarsi autonomamente nella soluzione della prova e, solo in un secondo tempo, confrontare quanto ottenuto con ciò che è presentato qui. Prestate particolare attenzione alle note e agli errori frequenti. Questi sono riportati nella speranza che in futuro divengano un po meno frequenti! Esercizio 1 Siano x e y due variabili di tipo int alla quali sono stati assegnati dei valori iniziali. Scrivete i valori delle due variabili dopo l esecuzione dei seguenti frammenti di codice, nell ipotesi che gli assegnamenti iniziali siano x = 1, y = 8: (a) x = x + y + y; y = y - x + y; y = x - y; (b) y = y - x + y; x = x + y + y; y = x - y; Le seguenti tabelle mostrano il contenuto delle variabili x e y dopo l esecuzione di ciascuna istruzione: (a) istruzione x y assegnamenti iniziali 1 8 x = x + y + y 17 8 y = y - x + y 17-1 y = x - y (b) istruzione x y assegnamenti iniziali 1 8 y = y - x + y 1 15 x = x + y + y y = x - y Pertanto, dopo l esecuzione del frammento (a) le variabili x e y contengono risperttivamente 17 e 18, mentre dopo l esecuzione del frammento (b) contengono 31 e 16. Errori nei calcoli. c 2013 Giovanni Pighizzini Il contenuto di queste pagine è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle pagine sono di proprietà dell autore. Le pagine possono essere riprodotte ed utilizzate liberamente dagli studenti, dagli istituti di ricerca, scolastici e universitari afferenti al Ministero dell Istruzione, dell Università e della Ricerca, per scopi istituzionali, non a fine di lucro. Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente a, le riproduzioni a mezzo stampa, su supporti magnetici o su reti di calcolatori) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte dell autore. L informazione contenuta in queste pagine è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, ecc. L informazione contenuta in queste pagine è soggetta a cambiamenti senza preavviso. L autore non si assume alcuna responsabilità per il contenuto di queste pagine (ivi incluse, ma non limitatamente a, la correttezza, completezza, applicabilità ed aggiornamento dell informazione). In ogni caso non può essere dichiarata conformità all informazione contenuta in queste pagine. In ogni caso questa nota di copyright non deve mai essere rimossa e deve essere riportata anche in utilizzi parziali.

2 della prova scritta del 5 febbraio Esercizio 2 Date due variabili a e b di tipo double, si considerino le seguenti espressioni: a > b - 10 a <= b (a) Esprimete in linguaggio Java la congiunzione delle due espressioni. (b) Esprimete in linguaggio Java la negazione dell espressione ottenuta al punto (a), senza utilizzare l operatore di negazione. L operatore di congiunzione (AND) è indicato in Java con il simbolo &&. Pertanto, per il punto (a) è sufficiente scrivere: a > b - 10 && a <= b Applicando le leggi di De Morgan, la negazione della condizione precedente è esprimibile come!(a > b - 10)!(a <= b) Ricordando che la negazione di > è <= e la negazione di <= è > otteniamo infine: a <= b - 10 a > b Non si devono confondere gli operatori di congiunzione (AND) e di disgiunzione (OR). Attenzione alla negazione degli operatori di confronto: la negazione di > non è <, ma <=. La negazione di >= è <, ecc. Gli operatori && e sono preferibili ai corrispondenti operatori orientati ai bit & e, per i quali la valutazione è meno efficiente, non utilizzando il meccanismo della lazy evaluation. Esercizio 3 Considerate il seguente metodo ricorsivo. Scrivete il risultato restituito dalle chiamate f(4) e f(5):... int f(int x) { if (x <= 1) return x; else return 3 + (x - 1) * f(x / 2); Dal codice del metodo osserviamo che: f(4) è uguale a * f(2). Calcoliamo dunque f(2): f(2) è uguale a * f(1). Il valore di f(1) è uguale a 1, fornito direttamente dal metodo. Sostituendo otteniamo che f(2) è uguale a 4 e, sostituendo di nuovo, f(4) è uguale a 15 Analogamente f(5) è uguale a * f(2). Sostituendo il valore di f(2), già calcolato per risolvere il punto precedente, otteniamo che f(5) vale 19.

3 della prova scritta del 5 febbraio Le divisioni utilizzate nel codice sono di tipo int, in quanto gli operandi sono di tipo int. Pertanto il risultato è di tipo int, indipendentemente dal valore di x. Esercizio 4 Considerate la dichiarazione di variabile String[] nomi e il seguente frammento di codice: int x = 0; try { x = nomi[x].length() / nomi[x + 1].length(); catch (ArithmeticException e) { x = x + 6; catch (ArrayIndexOutOfBoundsException e) { x = x + 4; catch (NullPointerException e) { x = x + 7; Ricordando che: - ArithmeticException viene sollevata in caso di anomalie nel calcolo di operazioni aritmetiche, - ArrayIndexOutOfBoundsException viene sollevata quando si tenti di accedere a una posizione inesistente in un array, - NullPointerException viene sollevata quando si tenti di accedere a un oggetto tramite un riferimento null, indicate, in ciascuno dei seguenti casi, il valore della variabile x dopo l esecuzione: a. l array riferito da nomi contiene (nell ordine indicato) riferimenti a oggetti che rappresentano le stringhe "formica", "ape". b. l array riferito da nomi contiene (nell ordine indicato) riferimenti a oggetti che rappresentano le stringhe "formica", "", "ape". c. nomi contiene null. d. l array riferito da nomi contiene come unico elemento il riferimento a un oggetto che rappresenta la stringa "ape". All inizio dell esecuzione, la variabile x viene inizializzata a 0. Viene poi eseguito il blocco try che contiene l assegnamento x = nomi[x].length() / nomi[x + 1].length(); Per calcolare il lato destro dell assegnamento, tramite il riferimento nomi si accede all array, prelevando l elemento di posto 0, per ricavare l operando sinistro della divisione, e, successivamente, quello di posto 1, per l operando destro. a. La situazione è rappresentata nella figura seguente:

4 della prova scritta del 5 febbraio L elemento di posto 0 dell array si riferisce alla stringa "formica", che ha lunghezza 7, quello di posto 1 alla stringa "ape", che ha lunghezza 3. Il risultato della divisione, che viene assegnato a x, è dunque 2. Il blocco try termina normalmente, senza alcuna anomalia. I blocchi catch vengono dunque ignorati. Il valore finale di x è 2. b. La situazione è rappresentata nella figura seguente: Anche in questo caso, l elemento di posto 0 dell array si riferisce alla stringa "formica", che ha lunghezza 7. L elemento di posto 1 si riferisce invece alla stringa vuota che ha lunghezza 0. Pertanto, il tentativo di effettuare una divisione solleva una ArithmeticException, intercettata nel primo blocco catch, nel quale a x si aggiunge 6. Pertanto il valore finale di x è 6. c. In questo caso il riferimento nomi contiene null: Pertanto non vi è alcun array associato a nomi. Il tentativo di accedere all array nell istruzione di assegnamento all interno del blocco try solleva una NullPointerException, intercettata dal terzo blocco catch, in cui a x, che contiene 0, viene aggiunto 7. Il valore finale di x sarà pertanto 7. d. In questo caso l array riferito da nomi contiene un solo elemento, in posizione 0: Per ottenere l operando destro della divisione, si tenta di accedere alla posizione 1 dell array. Tale posizione non esiste. Viene pertanto sollevata una ArrayIndexOutOfBoundsException. Tale eccezione viene intercettata nel secondo blocco catch, aggiungendo 4 a x. Pertanto al termine dell esecuzione il valore di x è 4.

5 della prova scritta del 5 febbraio Attenzione alle posizioni e alla lunghezza degli array: la lunghezza fornisce il numero di elementi; le posizioni sono numerate consecutivamente a partire da 0. Pertanto l ultima posizione è uguale alla lunghezza meno 1. Poiché gli operandi sono di tipo int, la divisione è di tipo int e dunque non produce decimali. Negli esercizi seguenti si supponga di disporre di una classe concreta di nome Alfa, che possiede un unico costruttore. Il costruttore riceve come argomento una stringa. Tra i metodi di Alfa vi è public int getnum(), che restituisce la lunghezza della stringa specificata al momento della costruzione dell oggetto. Ad esempio, il metodo getnum() di un oggetto costruito invocando new Alfa("ape") restituisce 3. Si ricordi inoltre che la classe String fornisce un metodo statico public String valueof(int i) che, ricevendo un numero intero, restituisce il riferimento a un oggetto di tipo String che rappresenta tale numero come stringa. Ad esempio, la chiamata String.valueOf(15) restituisce un riferimento a un oggetto che rappresenta la stringa di 2 caratteri "15". Esercizio 5 Considerate le seguenti classi: public class Beta extends Alfa { private static int x = 9; private int y; public Beta(String s, int u) { super(s); y = u; x = x + u; public int getnum() { return super.getnum() + y; public static int getstatico() { return x; class Prova { public static void main(string[] args) { System.out.println(Beta.getStatico()); //1 Alfa a = new Beta("leone", 6); System.out.println(a.getNum()); //2 a = new Alfa(String.valueOf(a.getNum())); System.out.println(a.getNum()); //3 System.out.println(Beta.getStatico()); //4 Scrivete l output prodotto dalle istruzioni di stampa seguite dai commenti //1... //4:

6 della prova scritta del 5 febbraio Poiché Beta estende Alfa, ogni istanza di Beta è formata da un istanza di Alfa più il campo y di tipo int. Il codice della classe specifica inoltre un campo statico x di tipo int, inizializzato al valore 9. Questo campo, essendo statico, appartiene all intera classe (e non ai singoli oggetti) e viene creato nel momento stesso in cui si utilizza la classe. Simuliamo ora l esecuzione del metodo main. La prima istruzione invoca il metodo statico getstatico della classe Beta e visualizza il risultato. Tale metodo restituisce il valore contenuto nel campo statico x di Beta, cioè 9. Pertanto, la prima istruzione visualizza 9. L istruzione successiva invoca il costruttore di Beta fornendo come argomenti la stringa "leone" e l intero 6. Il riferimento all oggetto costruito viene poi memorizzato nella variabile a di main. Simuliamo la costruzione dell oggetto. Prima di tutto, viene invocato il costruttore della superclasse Alfa fornendo come argomento la stringa ricevuta tramite il parametro s, cioè "leone". Viene poi assegnato al campo y dell oggetto costruito il valore del secondo parametro u, cioè 6, e infine, al campo statico x viene aggiunto il medesimo valore. Pertanto, dopo l esecuzione della seconda istruzione del metodo main, la memoria avrà il seguente contenuto: 1 L istruzione successiva invoca il metodo getnum, tramite il riferimento a, e visualizza il valore restituito. Poiché l oggetto riferito da a è di tipo Beta, il metodo getnum è quello definito nella classe Beta. Tale metodo: invoca il metodo getnum della superclasse (invocazione super.getnum()) somma al valore ottenuto il valore del campo y restituisce il risultato ottenuto. Il metodo getnum della superclasse Alfa restituisce, come specificato, la lunghezza della stringa fornita per costruire l oggetto, in questo caso 5. Il valore di y è 6. Pertanto, il risultato restituito da getnum, e poi visualizzato dall istruzione //2, è 11. L istruzione successiva di main invoca il costruttore della classe Alfa fornendo come argomento la stringa restituita da String.valueOf(a.getNum()). Poiché l oggetto riferito da a non è stato 1 La parte in verde rappresenta l oggetto costruito. Al suo interno c è la parte ereditata da Alfa e il campo y. Nella parte ereditata da Alfa, di cui non conosciamo l organizzazione interna, scriviamo la stringa utilizzata per la costruzione, che risulterà utile in seguito.

7 della prova scritta del 5 febbraio modificato rispetto all istruzione precedente, il risultato di a.getnum() è di nuovo 11. Quindi String.valueOf(a.getNum()) restituisce la stringa "11", che viene fornita come argomento al costruttore di Alfa. Alla variabile a viene assegnato il riferimento al nuovo oggetto (pertanto il precedente risulta irraggiungibile): L istruzione successiva visualizza il risultato dell invocazione a.getnum(). In questo caso, l oggetto riferito da a è di tipo Alfa. Pertanto viene eseguito il metodo getnum di Alfa, che restituisce la lunghezza della stringa che era stata fornita al costruttore, cioè 2. Infine, l ultima istruzione di main invoca il metodo getstatico di Beta, per visualizzare il contenuto del campo statico x, in questo caso 15. I campi statici non appartengono ai singoli oggetti, ma all intera classe. In particolare, in questo esercizio appare un unico campo statico x che appartiene alla classe Beta. Attenzione a overriding e polimorfismo! Il metodo chiamato dipende dal tipo dell oggetto e non dal tipo del riferimento utilizzato nella chiamata. Quando si esegue l istruzione //2, il tipo dell oggetto è Beta e, dunque, viene eseguito il metodo getnum di Beta. Quando si esegue, invece, l istruzione //3, il tipo dell oggetto è Alfa. In questo caso, dunque, il metodo getnum eseguito è quello di Alfa. Esercizio 6 Oltre alle classi precedenti, considerate due classi concrete Delta e Gamma, un interfaccia In, tali che: - Gamma estende Alfa, - Delta estende Gamma e implementa In. a. Per ciascuna delle seguenti affermazioni indicate se l affermazione è vera o se è falsa: 1. Ogni istanza di Beta possiede un solo campo (oltre a quelli ereditati dalla superclasse) 2. Ogni istanza di Beta possiede due campi (oltre a quelli ereditati dalla superclasse) 3. Delta deve fornire l implementazione dei metodi di In 4. Gamma deve ridefinire il metodo getnum

8 della prova scritta del 5 febbraio Gamma può ridefinire il metodo getnum 6. Se il codice sorgente della classe Gamma non contiene un costruttore allora il compilatore segnala un errore 7. Ogni istanza di Delta è anche un istanza di Alfa 8. Ogni istanza di Delta è anche un istanza di Beta 9. Delta è una sottoclasse di In 10. In è un supertipo di Delta b. Considerate le seguenti dichiarazioni di variabile: Alfa a; Beta b; Gamma g; Delta d; In i; Per ciascuno dei seguenti assegnamenti indicate se è compilato correttamente oppure no (supponete che al posto di... vi siano gli argomenti opportuni): 1. d = new Gamma(...) 2. d = i 3. g = new Delta(...) 4. i = d 5. i = (Delta) a 6. g = (Delta) i 7. d = new Delta(...) 8. b = (Beta) a 9. a = d 10. d = a Prima di tutto è opportuno disegnare la gerarchia dei tipi coinvolti nell esercizio: Alfa Beta Gamma Delta In Punto a: 1. Ogni istanza di Beta possiede un solo campo (oltre a quelli ereditati dalla superclasse). Vera. Le istanze della classe Beta contengono il campo y più la parte ereditata da Alfa. Il campo x, invece, essendo statico, appartiene all intera classe e viene creato una sola volta all inizio dell esecuzione. 2. Ogni istanza di Beta possiede due campi (oltre a quelli ereditati dalla superclasse). Falsa. Vedere punto precedente.

9 della prova scritta del 5 febbraio Delta deve fornire l implementazione dei metodi di In. Vera. Poiché Delta implementa l interfaccia In, Delta deve fornire l implementazione di tutti i metodi dichiarati in In. 4. Gamma deve ridefinire il metodo getnum. Falsa. Gamma estende Alfa, classe concreta che possiede il metodo getnum. Potrebbe ridefinirlo, come ad esempio fa Beta, ma non è tenuta a farlo. 5. Gamma può ridefinire il metodo getnum. Vera. Gamma estende Alfa e, dunque, può ridefinirne i metodi, a meno che in Alfa siano dichiarati final. Se il metodo getnum fosse dichiarato final in Alfa, nemmeno la classe Beta potrebbe ridefinirlo, come invece fa nel codice presentato nell esercizio Se il codice sorgente della classe Gamma non contiene un costruttore allora il compilatore segnala un errore. Vera. Se il codice di una classe non contiene un costruttore, allora il compilatore aggiunge automaticamente un costruttore privo di argomenti che, a sua volta, richiama il costruttore privo di argomenti della superclasse. Pertanto, se il codice sorgente della classe Gamma non contiene un costruttore, il compilatore aggiunge un costruttore che tenta di richiamare il costruttore privo di argomenti della superclasse Alfa. Tuttavia, come specificato, la classe Alfa possiede un unico costruttore (che riceve una stringa). Pertanto il compilatore segnala errore. 7. Ogni istanza di Delta è anche un istanza di Alfa. Vera. Ogni istanza di una sottoclasse è anche un istanza di ogni sua superclasse diretta o indiretta. 8. Ogni istanza di Delta è anche un istanza di Beta. Falsa. Non vi è alcuna relazione gerarchica tra Delta e Beta. 9. Delta è una sottoclasse di In. Falsa. In è un interfaccia: non ha senso parlare di sottoclasse o superclasse. A livello di tipi riferimento possiamo dire che Delta è una sottotipo di In 10. In è un supertipo di Delta. Vera. Vedere punto precedente. Punto b: 1. d = new Gamma(...) No. L espressione a destra dell assegnamento è di tipo Gamma, più ampio del tipo Delta della 2. d = i No. L espressione a destra dell assegnamento è di tipo In, più ampio del tipo Delta della 3. g = new Delta(...) Sì. L espressione a destra dell assegnamento è di tipo Delta, sottotipo del tipo Gamma della 4. i = d Sì. L espressione a destra dell assegnamento è di tipo Delta, sottotipo del tipo In della

10 della prova scritta del 5 febbraio i = (Delta) a Sì. A livello di compilazione è possibile forzare un riferimento di tipo Alfa al sottotipo Delta. L espressione a destra dell assegnamento è dunque di tipo Delta, sottotipo del tipo In della 6. g = (Delta) i Sì. A livello di compilazione è possibile forzare un riferimento di tipo In al sottotipo Delta. L espressione a destra dell assegnamento è dunque di tipo Delta, sottotipo del tipo Gamma della 7. d = new Delta(...) Sì. L espressione a destra dell assegnamento e la variabile a sinistra sono dello stesso tipo. 8. b = (Beta) a Sì. A destra dell assegnamento, il riferimento contenuto nella variabile a, di tipo Alfa, viene forzato al sottotipo Beta, che coincide con il tipo della 9. a = d Sì. L espressione a destra dell assegnamento è di tipo Delta, sottotipo del tipo Alfa della 10. d = a No. L espressione a sinistra dell assegnamento è di tipo Alfa, supertipo del tipo Delta della variabile a destra. I campi statici appartengono alle classi e non alle oggetti. Pertanto, ogni oggetto (o istanza) della classe Beta possiede un solo campo, cioè y, oltre a quelli ereditati dalla superclasse. In una classe, il costruttore privo di argomenti viene aggiunto automaticamente dal compilatore solo se non è scritto esplicitamente nessun costruttore. Il costruttore privo di argomenti aggiunto dal compilatore richiama sempre il costruttore privo di argomenti della superclasse. Se questo non è presente, il compilatore segnala un errore. Il punto b si riferisce alla compilazione e non all esecuzione. Alcuni assegnamenti (come il numero 5) che potrebbero dare problemi in esecuzione, dal punto di vista della compilazione sono leciti.

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

Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007

Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007 Cognome............................. Nome................................ Programmazione Compitino del 17 gennaio 2007 Matricola............................ NOTA: Negli esercizi 1, 2, 3, 4 fate riferimento

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012

Programmazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 20 febbraio 2012 TEMPO DISPONIBILE: 1 ora Negli

Dettagli

public double getraggio() restituisce la lunghezza del raggio del cerchio che esegue il metodo.

public double getraggio() restituisce la lunghezza del raggio del cerchio che esegue il metodo. Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 7 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40

Dettagli

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo. Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 21 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40

Dettagli

Programmazione. Cognome... Nome... Matricola... Compitino del 26 gennaio 2009

Programmazione. Cognome... Nome... Matricola... Compitino del 26 gennaio 2009 Cognome................................ Nome................................... Matricola............................... Programmazione Compitino del 26 gennaio 2009 NOTA: Negli esercizi 1, 2, 3, 4 fate

Dettagli

Note ed esercizi aggiuntivi

Note ed esercizi aggiuntivi Corso di Programmazione Anno Accademico 2014 2015 Prof. Giovanni Pighizzini Note ed esercizi aggiuntivi 10. Ereditarietà, file di testo, gerarchia delle classi e gerarchia dei tipi Esercizio 10.1 Scrivete

Dettagli

Soluzione del primo compitino

Soluzione del primo compitino Corso di Programmazione Anno Accademico 2010 2011 Prof. Giovanni Pighizzini Soluzione del primo compitino Esercizio 1 Considerate le seguenti dichiarazioni di variabile: Sequenza elenco; Importo

Dettagli

Linguaggio C I puntatori

Linguaggio C I puntatori FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C I puntatori 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

Soluzione del primo compitino

Soluzione del primo compitino Corso di Programmazione Anno Accademico 2011 2012 Prof. Giovanni Pighizzini del primo compitino Esercizio 1 Completate il seguente metodo main in modo che: (a) legga due stringhe di caratteri, (b) controlli

Dettagli

Introduzione alla programmazione strutturata

Introduzione alla programmazione strutturata FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio

Dettagli

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano

Dettagli

Dal linguaggio macchina al linguaggio C

Dal linguaggio macchina al linguaggio C FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Dal linguaggio macchina al linguaggio C 2000 Pier Luca Montessoro (si veda la nota di copyright

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Programma sorgente, compilatore, file oggetto, file eseguibile. Traduzione effettuata dal compilatore. Dichiarazione di variabili (esempi)

Programma sorgente, compilatore, file oggetto, file eseguibile. Traduzione effettuata dal compilatore. Dichiarazione di variabili (esempi) FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Facoltà di Ingegneria Università degli Studi di Udine Dal linguaggio macchina al linguaggio C 2000 Pier Luca Montessoro (si veda la nota di copyright alla

Dettagli

Linguaggio C e sistema operativo

Linguaggio C e sistema operativo FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C e sistema operativo 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

Linguaggio C Vettori e stringhe

Linguaggio C Vettori e stringhe FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Vettori e stringhe 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

Linguaggio C Struct e union

Linguaggio C Struct e union FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struct e union 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

Linguaggio C Debugging

Linguaggio C Debugging FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota

Dettagli

Codifica dei numeri interi positivi e negativi

Codifica dei numeri interi positivi e negativi FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Codifica dei numeri interi positivi e negativi 2000 Pier Luca Montessoro (si veda la nota di copyright

Dettagli

Linguaggio C Strutture di controllo

Linguaggio C Strutture di controllo FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Strutture di controllo 2001 Pier Luca Montessoro - Davide

Dettagli

Esempio 2: Subtyping

Esempio 2: Subtyping Esempio 2: Subtyping 22 Subclassing e subtyping Fino ad ora abbiamo trattato l ereditarietà come strumento che consente il riuso flessibile di classi già esistenti mediante l aggiunta o la ridefinizione

Dettagli

Codifiche Binary Coded Decimal (BCD) e Gray

Codifiche Binary Coded Decimal (BCD) e Gray FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Codifiche Binary Coded Decimal (BCD) e Gray 28 Pier Luca Montessoro (si veda la nota di copyright

Dettagli

//riferimento a una sequenza di oggetti della classe Importo

//riferimento a una sequenza di oggetti della classe Importo Cognome................................ Nome................................... Matricola............................... Programmazione Compitino del 29 novembre 2010 Negli esercizi fate riferimento alle

Dettagli

Programmazione I - corso B a.a prof. Viviana Bono

Programmazione I - corso B a.a prof. Viviana Bono Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi

Dettagli

Programmazione a Oggetti Lezione 11. Eccezioni e Packages

Programmazione a Oggetti Lezione 11. Eccezioni e Packages Programmazione a Oggetti Lezione 11 Eccezioni e Packages Sommario Eccezioni Sollevamento Cattura Trattamento Packages e visibilità Eccezioni I programmi spesso si trovano ad operare in condizioni anomale:

Dettagli

Compitino del 24 novembre 2008: soluzione

Compitino del 24 novembre 2008: soluzione Corso di Programmazione Anno Accademico 2008 2009 Prof. Giovanni Pighizzini Compitino del 24 novembre 2008: soluzione Esercizio 1 Completate il seguente metodo main in modo che legga un numero intero inserito

Dettagli

Esonero del corso di Programmazione a Oggetti

Esonero del corso di Programmazione a Oggetti Esonero del corso di Programmazione a Oggetti Roma, 1 dicembre 2005 Considerate le seguenti definizioni di classi e interfacce in Java: interface Fumetto{ void esclama(); void utile(); class Personaggio

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni 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 Corso

Dettagli

Programmazione II Compitino (Vers. B)

Programmazione II Compitino (Vers. B) Programmazione II Compitino (Vers. B) 17 dicembre 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi

Dettagli

Introduzione al corso

Introduzione al corso FONDAMENTI DI PROGRAMMAZIONE E ARCHITETTURA DEI CALCOLATORI Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Introduzione al corso 2008 Pier Luca Montessoro (si veda la

Dettagli

Note sulla macchina a stack

Note sulla macchina a stack Linguaggi e Traduttori Anno Accademico 2014 2015 Prof. Giovanni Pighizzini Note sulla macchina a stack 20 Maggio 2015 Questo documento contiene alcune note sulla macchina virtuale utilizzata per gli esempi

Dettagli

Esonero del corso di Programmazione a Oggetti

Esonero del corso di Programmazione a Oggetti Esonero del corso di Programmazione a Oggetti Roma, 26 novembre 2008 Considerate le seguenti definizioni di classi e interfacce in Java: class P {public static void print(string s){system.out.println(s);

Dettagli

Le eccezioni in Java

Le eccezioni in Java Le eccezioni in Java G. Grossi 17 gennaio 2007 Indice 1 Le eccezioni Gerarchia eccezioni Le eccezioni Object Throwable Error Exception Controllate Non controllate RunTimeException Indice Le eccezioni 1

Dettagli

Tecniche di compressione senza perdita

Tecniche di compressione senza perdita FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Tecniche di compressione senza perdita 2000 Pier Luca Montessoro (si veda la nota di copyright

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

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo Esempi al calcolatore su: 1) 2) Subtyping e Polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

Ereditarietà. Unità 9. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Ereditarietà. Unità 9. 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

Array di array. E' possibile creare strutture a matrice (2D, 3D,..., ND), esempio: double [ ][ ] entrate = new double [NANNI][NMESI];

Array di array. E' possibile creare strutture a matrice (2D, 3D,..., ND), esempio: double [ ][ ] entrate = new double [NANNI][NMESI]; Array di array E' possibile creare strutture a matrice (2D, 3D,..., ND), esempio: double [ ][ ] entrate = new double [NANNI][NMESI]; Per l'accesso ai dati è necessario utilizzare il doppio indice: entrate

Dettagli

Note ed esercizi aggiuntivi

Note ed esercizi aggiuntivi Corso di Programmazione Anno Accademico 2015 2016 Prof. Giovanni Pighizzini ed esercizi aggiuntivi Gli esercizi proposti sono utili per rivedere gli esempi riportati, che sono stati sviluppati e discussi

Dettagli

Controllo e correzione degli errori

Controllo e correzione degli errori FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Controllo e correzione degli errori 2000 Pier Luca Montessoro si veda la nota di copyright alla

Dettagli

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo 1 Esempio 1: Costruttori ed ereditarietà Costruttori ed ereditarietà 2 Introduzione Java prevede due automatismi legati

Dettagli

2001 Pier Luca Montessoro, Davide Pierattoni (si veda la nota di copyright alla slide n. 2)

2001 Pier Luca Montessoro, Davide Pierattoni (si veda la nota di copyright alla slide n. 2) - Linguaggio C - Espressioni e operatori FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing.DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Espressioni e operatori

Dettagli

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C I file 2001 Pier Luca Montessoro - Davide Pierattoni (vedere

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

Note ed esercizi aggiuntivi

Note ed esercizi aggiuntivi Corso di Programmazione Anno Accademico 2015 2016 Prof. Giovanni Pighizzini Note ed esercizi aggiuntivi Gli esercizi proposti sono utili per rivedere gli esempi riportati, che sono stati sviluppati e discussi

Dettagli

Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito.

Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito. Corso di Linguaggi e Traduttori Anno Accademico 2017 2018 Prof. Giovanni Pighizzini Progetto d esame Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito. Variabili

Dettagli

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 11 Array A. Miola Dicembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Array 1 Contenuti Il problema degli studenti da promuovere

Dettagli

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 1999 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright

Dettagli

Architettura e funzionamento del calcolatore

Architettura e funzionamento del calcolatore FONDAMENTI DI INFORMATICA Prof PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Architettura e funzionamento del calcolatore 2000 Pier Luca Montessoro (si veda la nota di copyright

Dettagli

Gestione dei compiti

Gestione dei compiti 1 of 18 23/10/2006 103 Gestione dei compiti Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Domanda n. 1 Argomento: Logica booleana Domanda: Qual e' il risultato

Dettagli

Concetti Base Encapsulation ed Ereditarietà Programmare con l Ereditarietà. Java: Ereditarietà. Damiano Macedonio

Concetti Base Encapsulation ed Ereditarietà Programmare con l Ereditarietà. Java: Ereditarietà. Damiano Macedonio Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica Introduzione Ereditarietà in Sintesi È uno dei concetti chiave della programmazione orientata agli

Dettagli

Uguaglianza e copia di oggetti

Uguaglianza e copia di oggetti Uguaglianza e copia di oggetti Sommario 1. Classi Object e Class 2. Uguaglianza superficiale e uguaglianza profonda 3. Copia superficiale e copia profonda 4. Uguaglianza e copia in classi derivate 1 La

Dettagli

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

Dettagli

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals()

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Ereditarietà (Inheritance) RIASSUMIAMO DALLA SCORSA

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Dettagli

Architettura del processore. Modello di calcolatore. Caratteristiche del processore. Caratteristiche del processore. Fondamenti di Informatica

Architettura del processore. Modello di calcolatore. Caratteristiche del processore. Caratteristiche del processore. Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Architettura e funzionamento del calcolatore 20 Pier Luca Montessoro (si veda la nota di copyright

Dettagli

Programmazione orientata agli oggetti Subtyping e polimorfismo. Subtyping-polimorfismo

Programmazione orientata agli oggetti Subtyping e polimorfismo. Subtyping-polimorfismo Programmazione orientata agli oggetti Subtyping e polimorfismo 1 Subclassing e subtyping Fino ad ora abbiamo trattato l ereditarietà come strumento che consente il riuso flessibile di classi già esistenti

Dettagli

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo Esempi al calcolatore su: 1) 2) Subtyping e polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il

Dettagli

Programmazione a oggetti

Programmazione a oggetti Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software

Dettagli

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61 Capitolo 5 Array e collezioni c 2005 Pearson Education Italia Capitolo 5-1 / 61 Sommario: Array e collezioni 1 Array Array di oggetti Lunghezza di un array Accesso agli elementi di un array Array e cicli

Dettagli

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di

Dettagli

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore

Dettagli

Programmazione a Oggetti Lezione 8. Definizioni di Classi II

Programmazione a Oggetti Lezione 8. Definizioni di Classi II Programmazione a Oggetti Lezione 8 Definizioni di Classi II Sommario Costruzione di un oggetto Processo complesso che comprende varie fasi: 1. Allocare spazio per ogni campo - in ordine testuale - inizializza

Dettagli

Programmazione II Compitino (Vers. A)

Programmazione II Compitino (Vers. A) Programmazione II Compitino (Vers. A) 15 gennaio 2015 Cognome... Nome... Matricola... Anno di corso... Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi al corpo del

Dettagli

Laboratorio di Programmazione 1 [Java]

Laboratorio di Programmazione 1 [Java] Laboratorio di Programmazione 1 [Java] Prova di esame - 26 Gennaio 2011 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Pizzeria. La classe Tavolo ha i seguenti attributi: nome (una

Dettagli

Programmazione in Java (I modulo) Lezione 20: Ereditarietà

Programmazione in Java (I modulo) Lezione 20: Ereditarietà Programmazione in Java (I modulo) Lezione 20: Ereditarietà Ereditarietà (Inheritance) Il programmatore definisce una classe generale In seguito definisce una classe più specifica Aggiungo soltanto nuovi

Dettagli

Insegnamento di Laboratorio di algoritmi e strutture dati

Insegnamento di Laboratorio di algoritmi e strutture dati Insegnamento di Laboratorio di algoritmi e strutture dati Roberto Posenato ver. 0.6, 31/01/2008 1 / 25 Si comincia... 1 Esigenza... Definizione Tipi di eccezioni Sollevare eccezioni Gestire le eccezioni

Dettagli

Programmazione II Compitino (Vers. B)

Programmazione II Compitino (Vers. B) Programmazione II Compitino (Vers. B) 15 gennaio 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi

Dettagli

Programmazione II Compitino (Vers. A)

Programmazione II Compitino (Vers. A) Programmazione II Compitino (Vers. A) 17 dicembre 2015 Cognome... Nome... Matricola... Anno di corso... Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi al corpo del

Dettagli

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 1999 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright

Dettagli

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione Corso: Fondamenti di Informatica (Gruppo 2) a.a. 2017-18 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab05 Domanda n. 1 Argomento: Iterazioni, array

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

Programmazione. Cognome... Nome... Matricola... Compitino del 24 novembre 2011

Programmazione. Cognome... Nome... Matricola... Compitino del 24 novembre 2011 Cognome................................ Nome................................... Matricola............................... Programmazione Compitino del 24 novembre 2011 Negli esercizi fate riferimento alle

Dettagli

2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1 Le tecnologie alla base del World Wide (II RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 1999 Pier Luca Montessoro (si

Dettagli

Java Gli array. Array

Java Gli array. Array Java Gli array 1 Gli array In generale un array è una sequenza di locazioni di memoria, che contengono entità dello stesso tipo, e a cui si può fare riferimento con un nome comune Le entità che compongono

Dettagli

Strumenti per la programmazione. Strumenti per la programmazione. Strumenti per la programmazione. Strumenti per la programmazione

Strumenti per la programmazione. Strumenti per la programmazione. Strumenti per la programmazione. Strumenti per la programmazione FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La zione in linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici

Dettagli

Oggetti. Definizioni di Classi II

Oggetti. Definizioni di Classi II Programmazione a Oggetti Definizioni di Classi II Sommario Costruzioni di oggetti Campi e metodi di classe Overloading Istanziazione di oggetti Costruzione di un oggetto Processo complesso che comprende

Dettagli

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 10 Dicembre 2001 Alcune Soluzioni ESERCIZIO 1. Si consideri il seguente frammento di codice in linguaggio Java: int[][] a = new int[n][n]; for (int i

Dettagli

Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1 Le tecnologie alla base del World Wide RETI DI CALCOLATORI Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 2001-2007 Pier Luca Montessoro (si veda la nota a pagina 2) 1

Dettagli

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0}

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0} 16181 Nome Cognome A domande a risposta multipla con n scelte, la risposta corretta vale (n-1)/n*difficoltàdomanda, la risposta errata -1/n*difficoltà domanda, la risposta non data. Eseguendo il frammento

Dettagli

Classi ed Oggetti. Fondamenti di Informatica A-K

Classi ed Oggetti. Fondamenti di Informatica A-K Classi ed Oggetti Fondamenti di Informatica A-K Esercitazione 5 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti,

Dettagli

Eccezioni predefinite

Eccezioni predefinite Eccezioni predefinite Java mette a disposizione molte eccezioni già confezionate, che descrivono la maggioranza dei problemi che possono verificarsi a run-time. Ognuna di queste è una classe. Tutte queste

Dettagli

Esercizi di Addressing. Fulvio Risso Guido Marchetto

Esercizi di Addressing. Fulvio Risso Guido Marchetto Esercizi di Addressing Fulvio Risso Guido Marchetto 1 Nota di Copyright Questo insieme di trasparenze (detto nel seguito slides) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali.

Dettagli

La programmazione in linguaggio C

La programmazione in linguaggio C FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La programmazione in linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

Algoritmi e Strutture di Dati

Algoritmi e Strutture di Dati Algoritmi e Strutture di Dati Pseudocodifica m.patrignani Nota di copyright queste slides sono protette dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi, ma non limitatamente,

Dettagli

2001 Pier Luca Montessoro, Davide Pierattoni (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica.

2001 Pier Luca Montessoro, Davide Pierattoni (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica. FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Le trappole del linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

Programmazione orientata agli oggetti Subtyping e polimorfismo. Subtyping-polimorfismo

Programmazione orientata agli oggetti Subtyping e polimorfismo. Subtyping-polimorfismo Programmazione orientata agli oggetti Subtyping e polimorfismo 1 Subclassing e subtyping Fino ad ora abbiamo trattato l ereditarietà come strumento che consente il riuso flessibile di classi già esistenti

Dettagli

Input/output in C e in C++

Input/output in C e in C++ FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Codifica del video

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Codifica del video FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Codifica del video 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

Dettagli

Polimorfismo. Subtyping-polimorfismo

Polimorfismo. Subtyping-polimorfismo Polimorfismo 23 Polimorfismo - Esempio Definiamo la classe Persona che gestisce i dati anagrafici di una persona (nome ed età per semplicità) La classe definisce un costruttore e il metodo print che stampa

Dettagli

Java Gli array. Array

Java Gli array. Array Java Gli array 1 Gli array In generale un array è una sequenza di locazioni di memoria, che contengono entità dello stesso tipo, e a cui si può fare riferimento con un nome comune Le entità che compongono

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

Programmazione orientata agli oggetti Subtyping e polimorfismo. Subtyping-polimorfismo

Programmazione orientata agli oggetti Subtyping e polimorfismo. Subtyping-polimorfismo Programmazione orientata agli oggetti Subtyping e polimorfismo 1 Subclassing e subtyping Fino ad ora abbiamo trattato l ereditarietà come strumento che consente il riuso flessibile di classi già esistenti

Dettagli