Politecnico di Milano
|
|
|
- Elvira Nanni
- 8 anni fa
- Visualizzazioni
Transcript
1 Appello 25 settembre 2015 Politecnico di Milano Anno accademico Ingegneria del Software Cognome: DESIGN AND IMPLEMENTATION OF MOBILE APPLICATIONS 24 / 09 / 2015 Nome: Matricola: LAUREANDO Sezione (segnarne una): Baresi Ghezzi San Pietro Cassani Valerio [email protected] Curci Matteo [email protected] Istruzioni 1. La mancata indicazione dei dati anagrafici e della sezione comporta l annullamento del compito. 2. Al termine, consegnare solo i fogli distribuiti utilizzando il retro delle pagine in caso di necessità. Non separare questi fogli. Eventuali fogli di brutta, ecc. non verranno in nessun caso presi in considerazione. È possibile scrivere in matita. 3. È possibile consultare liberamente libri, manuali o appunti. È proibito l uso di ogni dispositivo elettronico (quali calcolatrici tascabili, telefoni cellulari, ecc.). 4. Non è possibile lasciare l aula conservando il tema della prova in corso. 5. Tempo a disposizione: 2h. Esercizio 1: Esercizio 2: Esercizio 3: Esercizio 4:
2 Esercizio 1 Si consideri la seguente specifica di un tipo di dato astratto gara che rappresenta una gara di atletica leggera (salti e lanci). Alla gara partecipano un numero di atleti fissato nel momento in cui la gara viene creata. Ad ogni atleta corrisponde un numero di pettorale: 1, 2,..., n, dove n è il numero dei partecipanti alla gara. L operazione gareggia(x,ris) indica che l atleta con il numero di pettorale x ha gareggiato ottenendo il risultato ris (per esempio, se si tratta di una gara di salto in alto, ris rappresenta l altezza di salto in cm). L operazione primo() restituisce il numero di pettorale dell atleta in testa al momento in cui l operazione viene eseguita. public class Gara{ // se p <=0 genera l eccezione NonEsisteGara, altrimenti crea //una gara con p partecipanti public Gara(int p) throws NonEsisteGaraException //metodo mutator //se x<0 o x e maggiore del num. dei partecipanti genera l eccezione //AtletaInesistente altrimenti modifica il valore del risultato //ottenuto dall atleta x senza modificare i risultati degli //altri atleti public void gareggia(int x, float result) throws AtletaInesistenteException //metodi observer: //restituisce il vincitore corrente della gara. public /*@ int primo() //restituisce i risultati ottenuti da ogni atleta partecipante alla gara. //Se un atleta non ha ancora ancora gareggiato il suo risultato //e convenzionalmente fissato a -1. public /*@ ArrayList<Float> risultati;b 1. Si specifichino i metodi gareggia e primo in JML. Per completezza specifichiamo anche il costruttore. //@ensures p>0 && risultati().size()==p && //@ (\forall int i; 0<= i && i<p; risultati().get(i)==-1); public Gara(int p) throws NonEsisteGaraException //@ensures 0<x && x<= risultati().size() && //@ risultati().size()== \old(risultati().size() && //@ (\forall int i; 0<= i && i<risultati().size(); //@ i==x-1? risultati().get(i) == result //@ :risultati().get(i) == \old(risultati().get(i)); //@signals (AtletaInesistenteException e) (x<=0 x>risultati().size()) && //@ risultati().equals(\old(risultati().clone())); public void gareggia(int x, float result) throws AtletaInesistenteException //@ensures risultati().get(\result -1) == //@ (\max int i; 0<=i && i<risultati().size(); risultati().get(i));
3 public int primo() Si e ipotizzato che primo() un pettorale qualunque quando sia chiamato prima di avere inserito almeno un risultato. 2. Si definisca un implementazione ragionevolmente efficiente per il calcolo del vincitore. Si scrivano pertanto una rep, il suo invariante di rappresentazione e la sua funzione di astrazione. Per semplificare il calcolo del vincitore e utile memorizzare il pettorale dell atleta col migliore risultato. I risultati possono essere memorizzati semplicemente in un array (la cui dimensione non cambia dopo la costruzione). Occorre poi fare attenzione che i pettorali partono da 1 mentre gli indici dell array da 0. private int primo; private float[] ris; //RI: private invariant ris!=null && ris[primo-1] == (\max int i; 0<=i && i<ris.length; ris[i]); //AF: private invariant primo()== primo && ris.equals(risultati().toarray()) 3. Si fornisca un implementazione del costruttore e del metodo gareggia() descrivendo brevemente, per ciascuno di essi, (1) perchè il rep invariant viene effettivamente mantenuto e (2) perchè la loro specifica viene rispettata. public Gara(int p) throws NonEsisteGaraException { if (p<=0) throw new NonEsisteGaraException(); ris = new Float[p-1]; primo=1; Arrays.fill(ris,-1); Il RI e`banalmente vero (ogni elemento dell array ris eìnizializzato a -1 e il primo e il pettorale numero 1, che e un pettorale valido). la specifica e pure banalmente vera: in base alla funzione di astrazione ris corrisponde esattamente a risultati(), e ris ha dimensione p ed e inizializzato interamente a -1. public void gareggia(int x, float result) throws AtletaInesistenteException { if (x<=0 x>= ris.length) throw new AtletaInesistenteException(); ris[x-1] = result; if (result>ris[primo-1]) primo = x; Se RI vale all entrata del metodo allora ris[primo-1] contiene il risultato migliore (ossia massimo). Se result e maggiore del massimo corrente allora il codice garantisce di memorizzare in primo il pettorale x. La specifica vale in quanto il codice memorizzare in ris[x-1] il valore di result e, per la funzione di astrazione, ris[x-1] corrisponde a risultati().get(x-1); tutti gli altri valo9re restano invariati. 4. Si vuole ora trattare un caso leggermente più generale di gara: il vincitore può essere scelto anche come l atleta che ha il punteggio minimo invece che quello con il punteggio massimo (ad esempio quando il punteggio rappresenta il tempo impiegato per una gara di corsa). Si definisca quindi una classe GaraEstesa, che estende la classe Gara. In essa il costruttore riceve un parametro addizionale tipo, il cui valore può essere solo il carattere < o >, per stabilire l ordinamento, che non può essere modificato dopo la costruzione.
4 public class GaraEstesa extends Gara { public GaraEstesa(int p, char tipo) //restituisce il vincitore corrente della gara secondo l ordinamento. /@override public /*@ int primo() a) Si completi la specifica dei metodi di GaraEstesa, aggiungendo eventualmente tutti e soli i metodi che si ritengono necessari. E necessario aggiungere un metodo puro che restituisca il tipo della gara: public /*@ char tipo(); Specifiche (sotto l ipotesi che i risultati validi siano positivi). //@requires tipo == < tipo == > ; //@ensures p>0 && risultati().size()==p && //@ tipo()==tipo && //@ (\forall int i; 0<= i && i<p; risultati().get(i)==-1); public GaraEstesa(int p, char tipo) throws NonEsisteGaraException; //@ensures risultati().get(\result -1) == //@ (tipo()== >? (\max int i; 0<=i && i<risultati().size(); risultati().get(i)) //@ : (\min int i; 0<=i&&i<risultati().size()&&risultati().get(i)>0; risultati().get(i)); public /*@ int primo() b) La classe GaraEstesa verifica il principio di sostituzione? Giustificare la risposta. NO, in quanto il metodo primo() viola la regola dei metodi: quando il tipo e <, restituisce il concorrente arrivato ultimo, anziche il primo. La postcondizione e pertanto violata.
5 Esercizio 2 Un impianto industriale coordinata tre bracci meccanici per il confezionamento di caramelle: Ogni robot preleva le caramelle da confezionare da un unico contenitore; Il contenitore è riempito ad intervalli regolari con caramelle; Ogni robot può solo prelevare 5 caramelle per volta dal contenitore comune; Ogni robot può gestire confezioni da 5, 10 e 15 caramelle; L accesso al contenitore è consentito solamente a due robot per volta; Si scriva il codice Java delle classi Robot, Controllore e Impianto tenendo presente che: (a) il sistema deve essere progettato per la massima flessibilità, ovvero in futuro il numero di robot e di contenitori della caramelle potrebbero cambiare. Inoltre, in un certo istante, tutti i robot devono gestire confezioni dello stesso tipo. Ad esempio, se un robot è configurato per confezioni da 10 caramelle, anche gli altri devono confezionare allo stesso modo.
6 Esercizio 3 Si consideri il seguente metodo, in cui ogni istruzione è numerata per comodità: 1 static void esegui(int a, int b) { 2 if (b>= 0 && a>0) { 3 while (b!=0) { 4 if (b >= 3) 5 a++; 6 else a--; 7 b--; ; ; 8 return a; 1. Si scriva la path condition e si sintetizzi un dato di test per percorrere il cammino seguente: 1, 2, 3, 4, 5, 7, 3, 4, 6, 7, 3, 4, 6, 7, 8. b=3 && a>0 (es. b=3 && a = 1) 2. Qual è il numero minimo di dati di test necessari per coprire tutte le condizioni del programma? Il caso trovato nel punto precedente copre gia le condizioni del while e del secondo if (durante le varie iterazioni del ciclo). Basta quindi coprire il caso false del primo if (con due casi di test). i casi di test minimi sono quindi solo 3: 1) b<0 (es- b=-1) 2) b>=0 && a<=0 (es. b=1 && a=0) 3) b=3 && a=1 3. Si sintetizzino i dati di test che soddisfano il requisito di cui al punto (2).
7 Esercizio 4 Si considerino le seguenti classi Java: public class Albero { public String tostring(){ return "Albero"; public void innesto(albero a) { System.out.println("Albero: " + this + " " + a); public class Arancio extends Albero { public String tostring(){ return "Arancio"; public void innesto(arancio a){ System.out.println("Arancio: " + this + " " + a); public class Melo extends Albero { public String tostring(){ return "Melo"; public void innesto(melo m) { System.out.println("Melo: " + this + " " + m); e si spieghi cosa stamperebbe il seguente metodo main, motivando brevemente le risposte: public class Test { public static void main(string args[]) { Albero a1, a2; Melo m; Arancio a; a1 = new Albero(); a2 = new Arancio(); m = new Melo(); a = new Arancio(); m.innesto(a1); a2.innesto(a1); m.innesto(m); a2 = m; a1 = a; a2.innesto(m); a1.innesto(a);
8 Albero: Melo Albero Albero: Arancio Albero Melo: Melo Melo Albero: Melo Melo Albero: Arancio Arancio
Politecnico di Milano
Politecnico di Milano Anno accademico 2011-2012 Ingegneria del Software Appello del 29 giugno 2012 Cognome: Nome: Matricola: Sezione (segnarne una): Baresi Ghezzi San Pietro Istruzioni 1. La mancata indicazione
Politecnico di Milano. Ingegneria del Software a.a. 2006/07. Appello del 14 settembre 2007 Cognome Nome Matricola
Politecnico di Milano Ingegneria del Software a.a. 2006/07 Appello del 14 settembre 2007 Cognome Nome Matricola Sezione (segnarne una) Baresi, Ghezzi, Morzenti, SanPietro Istruzioni 1. La mancata indicazione
Programmazione 1 A.A. 2015/2016
Cognome e Nome Matricola Programmazione 1 A.A. 2015/2016 Appello del 16 Dicembre 2015 Compito n 1 Prima parte Esercizio 1 (10 punti) Cosa stampa il seguente frammento di codice Java? int[] A = {3, 8, 91,
public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
Laboratorio di Programmazione 1 [Java]
Laboratorio di Programmazione 1 [Java] Prova di esame - 7 Settembre 2010 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Ristorante. La classe Tavolo ha i seguenti attributi: numero
Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array
Classi e array Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Si vuole definire una classe Polinomio per la rappresentazione di polinomi a
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
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
Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 18 luglio 2012 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi
3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;
Un esempio di definizione di classe con array di oggetti Sia data la classe StudUniv per gli studenti universitari (definita in una lezione precedente). Scrivere una nuova classe Corso, dove ciascun corso
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
Esercitazione. Docente Ing. Mariateresa Celardo
Esercitazione Docente Ing. Mariateresa Celardo [email protected] Scrivere la classe Motorino che ha i seguenti attributi colore: una stringa indicante il colore del motorino, velocità: un
Lezione 6 programmazione in Java
Lezione 6 programmazione in Java Nicola Drago [email protected] Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi
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
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
Esempio: L EURO-CONVERTITORE (1) Scopo
Esempio: L EURO-CONVERTITORE (1) Scopo Realizzare un sistema software per la conversione di euro in lire. In particolare, si vuole, definire un euro-covertitore e, dati due oggetti di tipo euro convertitore
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate
Algoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
Programmazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi [email protected] Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);
Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di
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
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[]
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
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
9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array 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 di Laurea
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 10 novembre 2010 1 La bandiera nazionale (problema 4.7 del libro di testo). Il problema della bandiera
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
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
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
Esempio: Tombola! Vogliamo progettare una applicazione che realizza il gioco della tombola Versione semplificata: un banco, un
Esempio: Tombola! Vogliamo progettare una applicazione che realizza il gioco della tombola Versione semplificata: un banco, un giocatore, ogni giocatore una scheda Ci vengono già fornite le classi necessarie
Prova d Esame Compito A
Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private static int counter=0; private int code; public
Programmazione I. 11 gennaio Considerate la seguente gerarchia di classi (rappresentata mediante un diagramma UML): +f(double x):
Programmazione I 11 gennaio 2012 Matricola:........................................................................ Cognome:........................................................................ Nome:...........................................................................
Algoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
Lezione 8 Struct e qsort
Lezione 8 Struct e qsort Rossano Venturini [email protected] Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort
Implementazione ADT: Alberi
Implementazione ADT: Alberi Livelli di astrazione 2001/2002 1 Esercitazione 5 (E6): alberi (tree) albero struttura dati fondamentale, soprattutto per le operazioni di ricerca tipi di albero con radice
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
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 21 Luglio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 21 Luglio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 4 esercizi,
Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A
Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate
Esercitazione n 2. Obiettivi
Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti
Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Esercizi sui metodi Carla Limongelli Maggio 2010 Esercizi 1 Passaggio di parametri di tipo primitivo Indicare che cosa viene visualizzato sullo
ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:
Università degli Studi di Milano Corso Architettura degli elaboratori e delle reti Prof. Cristina Silvano A.A. 2004/2005 Esame scritto del 15 luglio 2005 Cognome: Matricola: Nome: Istruzioni Scrivere solo
Progettazione del Software
Progettazione del Software Simulazione di esame Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Anno Accademico 2015/2016
ESERCIZIO 1 (FILE DI TESTO)
ESERCIZIO 1 (FILE DI TESTO) Scrivere su un file di testo righe inserite da console, fino a quando non viene inserita la linea vuota. Passare il nome del file come parametro al programma. Bisogna incapsulare
Le eccezioni in Java
Eccezioni 1 Le eccezioni in Java i tipi di eccezione sono particolari classi che contengono solo il costruttore ci possono essere più costruttori overloaded sono definite in moduli separati da quelli che
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e
Esercitazione 6. Array
Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione
Capitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73
Capitolo 9 Tipi enumerativi, tipi generici e interfacce c 2005 Pearson Education Italia Capitolo 9-1 / 73 Sommario: Tipi enumerativi, tipi generici e interfacce 1 Definizione di tipi enumerativi La classe
