Fondamenti di Informatica T1 Mappe

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Fondamenti di Informatica T1 Mappe"

Transcript

1 Fondamenti di Informatica T1 Mappe Tutor Melissa Licciardello Melissa Licciardello Fondamenti di Informatica T1 1 / 16

2 Mappe Matrice N x 2 : Gli elementi della prima colonna, denominati chiavi, identificano univocamente gli elementi della seconda colonna. Si può accedere ad un particolare elemento utilizzando la chiave associata Primitive: T2 put(t1 k, T2 v) Inserisce una coppia chiave-valore nella mappa T2 get(t1 k) Restituisce l elemento associato ad una determinata chiave passata come argomento T2 remove(t1 k) Rimuove l elemento associato ad una determinata chiave passata come argomento int size() Restituisce la cardinalità della mappa boolean isempty() Verifica se la mappa è vuota Set<T1> keyset() Restituisce il set delle chiavi Implementazione HashMap Melissa Licciardello Fondamenti di Informatica T1 2 / 16

3 Esercizio 1 (SVOLTO) Si vuole realizzare un programma di amministrazione per una scuola. Uno Studente è composto da un nome, un cognome ed una media. Oltre ad i metodi getter e setter deve ridefinire i metodi equals e hashcode (due studenti sono considerati uguali quando hanno lo stesso nome e lo stesso cognome). Una Classe è composta da un anno, una sezione ed un set di studenti. Un Insegnante è composto da nome e cognome. Ridefinire per questo, oltre ad i metodi getter e setter, i metodi equals e hashcode. Una Scuola ha un nome ed è composta da una mappa del tipo < Insegnate, Classe >. Oltre ad i metodi getter e setter definire i seguenti metodi public Set < Classe > getclassiperanno(int anno) : Ritorna in output un Set contenente tutte le classi di un determinato anno. public Insegnante getmigliore() : Ritorna l insegnante responsabile della classe con la media più alta. Scrivere poi un main di prova per testare le funzioni sopra elencate Melissa Licciardello Fondamenti di Informatica T1 3 / 16

4 Esercizio 1 : Soluzione Studente (PARTE I) Melissa Licciardello Fondamenti di Informatica T1 4 / 16

5 Esercizio 1 : Soluzione Studente (PARTE II) Melissa Licciardello Fondamenti di Informatica T1 5 / 16

6 Esercizio 1 : Soluzione Classe Melissa Licciardello Fondamenti di Informatica T1 6 / 16

7 Esercizio 1 : Insegnante Melissa Licciardello Fondamenti di Informatica T1 7 / 16

8 Esercizio 1 : Soluzione Scuola (PARTE I) Melissa Licciardello Fondamenti di Informatica T1 8 / 16

9 Esercizio 1 : Soluzione Scuola (PARTE II) Melissa Licciardello Fondamenti di Informatica T1 9 / 16

10 Esercizio 1 : Soluzione Main (PARTE I) Melissa Licciardello Fondamenti di Informatica T1 10 / 16

11 Esercizio 1 : Soluzione Main (PARTE II) Melissa Licciardello Fondamenti di Informatica T1 11 / 16

12 Esercizio 1 : Soluzione Main (PARTE III) Melissa Licciardello Fondamenti di Informatica T1 12 / 16

13 Esercizio 2 Un Libro è composto da un titolo ed un prezzo. Oltre ad i metodi getter e setter, ridefinire i metodi equals e hashcode. Una Libreria ha un nome ed una mappa < String, Set < Libro >> che ne schematizza l organizzazione di uno scaffale, dove la stringa utilizzata come chiave ne identifica il genere. Scrivere poi i seguenti metodi: public boolean aggiungilibro(libro libro, String genere): Aggiunge un libro allo scaffale adeguato. Se lo scaffale di quel preciso genere non esiste, il metodo ne crea uno ad hoc. Da in output true se l operazione va a buon fine, false altrimenti. public String getgenerepiueconomico() : Da in output il genere dello scaffale il cui prezzo dei libri, in media, è più basso. Scrivere poi un main di prova per testare le funzioni sopra elencate Melissa Licciardello Fondamenti di Informatica T1 13 / 16

14 Esercizio 3 Un Programma è composto da un titolo, un genere ed una fascia (un enum i cui valori sono VERDE, GIALLO, ROSSO). Ridefinire per questo i metodi hashcode e equals, oltre ad i getter e setter. Un Appuntamento è composto da un ora (un intero) ed un giorno della settimana (una stringa). Oltre ad i metodi getter e setter, ridefinire i metodi equals e hashcode. Inoltre la classe deve implementare l interfaccia Comparable (la funzione compareto deve seguire l ordine temporale). Un Canale è composto da un nome ed una mappa < Appuntamento, Programma > che ne indica la programmazione. Definire i seguenti metodi: public Set < Programma > programmiperbambini(string genere) : da in output il set di programmi visionabili da bambini (Fascia VERDE) per un determinato genere. public List < Appuntamento > programmazioneprogramma(string titolo) : da in output la lista (ordinata) degli appuntamenti di un determinato programma durante la settimana. Scrivere poi un main di prova per testare le funzioni sopra elencate Melissa Licciardello Fondamenti di Informatica T1 14 / 16

15 Esercizio finale (I) La classe astratta Film è composta da un titolo ed un anno. Inoltre deve mantenere un contatore del numero di voti ricevuti (inizializzato a zero) ed un codice univoco (la cui generazione dipende dall implementazione). Deve implementare Comparable in modo che un insieme di film possa essere ordinato in base ai voti ricevuti. Esibisce inoltre il metodo astratto public void vota(). Esistono due implementazioni: FilmAnimazione : Come ulteriore attributo ha un enum che ne indica la nazionalità (GIAPPONESE,AMERICANO,EUROPEO). Il codice (che deve essere generato nel costruttore) ha sintassi ANIM + prime tre lettere del titolo + prime due cifre dell anno. Il metodo vota(), ogni volta che viene invocato, aggiunge un voto al cumulatore dei voti del film. Inoltre, ogni dieci voti ricevuti, il film ne deve ricevere uno bonus. Cortometraggio: Come ulteriore attributo ha un enum che ne indica il genere (COMMEDIA,AZIONE,DRAMMATICO). Il codice (che deve essere generato nel costruttore) ha sintassi CORT + prime due cifre dell anno + prime tre lettere del titolo. Il metodo vota(), ogni volta che viene invocato, aggiunge un voto al cumulatore dei voti del film. Melissa Licciardello Fondamenti di Informatica T1 15 / 16

16 Esercizio finale (II) La classe Proiezione è composta da due interi che ne indicano l ora ed il numero della sala. Oltre ad i metodi getter e setter deve ridefinire i metodi hashcode() e equals(). La classe Festival è composta da un nome e da una mappa del tipo < Proiezione, Film > che ne indica la programmazione. Deve esibire i seguenti metodi : public Map < Proiezione, Cortometraggio > programmazionecorti(genere genere, int orario) : da in output la programmazione dei soli cortometraggi di un certo genere e dopo un certo orario. public List < Film > getclassifica() : da in output la classifica ordinata (e senza ripetizioni!) dei film. public FilmAnimazione migliorclassificatopernazionalità(nazionalità nazionalità) : da in output il film di animazione che ha ottenuto il maggior numero di voti per una certa nazionalità. public boolean vota (String nome film) : vota un film. Da true se l operazione riesce, false altrimenti. Scrivere poi un main di prova per testare le funzioni sopra elencate Melissa Licciardello Fondamenti di Informatica T1 16 / 16

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Mappe Tutor: Allegra De Filippo [email protected] a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 1 Mappe: definizione Tabelle a due colonne:

Dettagli

ESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1:

ESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1: ESERCIZI JAVA Esercizi sulle Interfacce Esercizio 1: Java mette a disposizione un'interfaccia chiamata Comparable. Quando un oggetto implementa questa interfaccia esso può implementare un metodo chiamato

Dettagli

ESERCIZIO 1 ESERCIZIO 1

ESERCIZIO 1 ESERCIZIO 1 Si crei un progetto Java che mappi un semplice sistema medico. Il progetto deve contenere tre classi: una per i pazienti, una per le patologie e una per il main. Inoltre si definiscano le seguenti eccezioni:

Dettagli

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;

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

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

Alberi Binario in Java

Alberi Binario in Java Alberi Binario in Java Realizzare un albero binario di ricerca. L albero binario è di ricerca se esiste una relazione di ordinamento tra i valori dei nodi (valori comparabili). In particolare, dato un

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

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

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array e funzioni 2. Array e funzioni ricorsive 3. Array e confronto di array 2 Esercizio 1 Creare un programma che legga da

Dettagli

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica informatica Java basi del linguaggio Alberto Ferrari Informatica struttura di un programma Java /** * Classe EsempioProgramma * Un esempio di programmazione in Java * @author 4A Informatica */ public class

Dettagli

La classe java.lang.object

La classe java.lang.object La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita

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

Esercizio Sincronizzazione Thread

Esercizio Sincronizzazione Thread Esercitazione di oratorio 17/10/2007 Esercizio Il laboratorio di Informatica del Polo Marzotto e utilizzato da tre tipi di utenti, studenti, tesisti e professori ed ogni utente deve fare una richiesta

Dettagli

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi:

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Vettore(int n): crea un oggetto Vettore contente n elementi, inizializzati

Dettagli

hashmap.pdf Pag. 1/6 Cozzetto

hashmap.pdf Pag. 1/6 Cozzetto / Persona.java Created on 20 novembre 2007, 10.07 To change this template, choose Tools Template Manager and open the template in the editor. / package hashmapjavaapp; / @author maurizio / public class

Dettagli

Ricerca e ordinamento su array di oggetti. Corso di Programmazione 2 Esercitazione 5

Ricerca e ordinamento su array di oggetti. Corso di Programmazione 2 Esercitazione 5 Ricerca e ordinamento su array di oggetti Corso di Programmazione 2 Esercitazione 5 Sommario Ricercare in array di oggetti Interfaccia comparable Ordinare array di oggetti Problema Come ordinare, ricercare

Dettagli

E7 Esercizi sul Capitolo 7 Realizzazione di Classi

E7 Esercizi sul Capitolo 7 Realizzazione di Classi E7 Esercizi sul Capitolo 7 Realizzazione di Classi Esercizio 1 (esercizio 7.1 del libro di testo). Nella classe Studente definita di seguito indicare le variabili d istanza, le variabili di classe e le

Dettagli

Preparazione allo Scritto di Programmazione

Preparazione allo Scritto di Programmazione Preparazione allo Scritto di Programmazione Informatica / Comunicazione Digitale A.A. 2013/2014 1. Una riga di testo è detta numerica se e solo se contiene più cifre che caratteri di altro genere. Ad esempio,

Dettagli

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che

Dettagli

Esercizio Si considerino la classe astratta Archiviabile e la classe Biblioteca:

Esercizio Si considerino la classe astratta Archiviabile e la classe Biblioteca: Si progetti un applicazione per gestire le attività di una tipografia che si occupa di stampare sia libri che quotidiani. Data la classe astratta così definita: public abstract class Stampabile { String

Dettagli

Esercitazione: Implementazione in linguaggio C dell ADT. Stack con l utilizzo. di linked list

Esercitazione: Implementazione in linguaggio C dell ADT. Stack con l utilizzo. di linked list Esercitazione: Implementazione in linguaggio C dell ADT Stack con l utilizzo di linked list Laboratorio di Programmazione Introduzione un ADT (Abstract Data Type) è un modello (formale) che generalizza

Dettagli

E17 Esercizi sugli Array in Java

E17 Esercizi sugli Array in Java E17 Esercizi sugli Array in Java Esercizio 1 (esercizio 9.1 del libro di testo). Implementare un metodo statico di nome stringacorta che prende come parametro un array di oggetti String e che restituisce

Dettagli

Esercitazione n 2. Obiettivi

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

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

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 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

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList Fondamenti di Informatica L-B 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito

Dettagli