+ All Categories
Home > Documents > Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti...

Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti...

Date post: 18-Feb-2019
Category:
Upload: truongque
View: 218 times
Download: 0 times
Share this document with a friend
16
Fondamenti di Informatica T1 Mappe Tutor Melissa Licciardello [email protected] Melissa Licciardello Fondamenti di Informatica T1 1 / 16
Transcript
Page 1: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Fondamenti di Informatica T1Mappe

TutorMelissa Licciardello

[email protected]

Melissa Licciardello Fondamenti di Informatica T1 1 / 16

Page 2: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Mappe

Matrice N x 2 : Gli elementi della prima colonna, denominati chiavi,identificano univocamente gli elementi della seconda colonna.

Si puo accedere ad un particolare elemento utilizzando la chiaveassociata

Primitive:I T2 put(T1 k, T2 v) → Inserisce una coppia chiave-valore nella mappaI T2 get(T1 k) → Restituisce l’elemento associato ad una determinata

chiave passata come argomentoI T2 remove(T1 k) → Rimuove l’elemento associato ad una

determinata chiave passata come argomentoI int size() → Restituisce la cardinalita della mappaI boolean isEmpty() → Verifica se la mappa e vuotaI Set<T1> keySet() → Restituisce il set delle chiavi

Implementazione → HashMap

Melissa Licciardello Fondamenti di Informatica T1 2 / 16

Page 3: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio 1 (SVOLTO)

Si vuole realizzare un programma di amministrazione per una scuola.Uno Studente e composto da un nome, un cognome ed una media.Oltre ad i metodi getter e setter deve ridefinire i metodi equals ehashCode (due studenti sono considerati uguali quando hanno lostesso nome e lo stesso cognome). Una Classe e composta da unanno, una sezione ed un set di studenti. Un Insegnante e compostoda nome e cognome. Ridefinire per questo, oltre ad i metodi getter esetter, i metodi equals e hashCode. Una Scuola ha un nome ed ecomposta da una mappa del tipo < Insegnate,Classe >. Oltre ad imetodi getter e setter definire i seguenti metodi

I public Set < Classe > getClassiPerAnno(int anno) : Ritorna in outputun Set contenente tutte le classi di un determinato anno.

I public Insegnante getMigliore() : Ritorna l’insegnante responsabiledella classe con la media piu alta.

Scrivere poi un main di prova per testare le funzioni sopra elencate

Melissa Licciardello Fondamenti di Informatica T1 3 / 16

Page 4: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio 1 : Soluzione Studente (PARTEI)

Melissa Licciardello Fondamenti di Informatica T1 4 / 16

Page 5: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio 1 : Soluzione Studente (PARTEII)

Melissa Licciardello Fondamenti di Informatica T1 5 / 16

Page 6: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio 1 : Soluzione Classe

Melissa Licciardello Fondamenti di Informatica T1 6 / 16

Page 7: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio 1 : Insegnante

Melissa Licciardello Fondamenti di Informatica T1 7 / 16

Page 8: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio 1 : Soluzione Scuola (PARTE I)

Melissa Licciardello Fondamenti di Informatica T1 8 / 16

Page 9: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio 1 : Soluzione Scuola (PARTE II)

Melissa Licciardello Fondamenti di Informatica T1 9 / 16

Page 10: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio 1 : Soluzione Main (PARTE I)

Melissa Licciardello Fondamenti di Informatica T1 10 / 16

Page 11: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio 1 : Soluzione Main (PARTE II)

Melissa Licciardello Fondamenti di Informatica T1 11 / 16

Page 12: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio 1 : Soluzione Main (PARTE III)

Melissa Licciardello Fondamenti di Informatica T1 12 / 16

Page 13: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio 2

Un Libro e composto da un titolo ed un prezzo. Oltre ad i metodigetter e setter, ridefinire i metodi equals e hashCode. Una Libreria haun nome ed una mappa < String ,Set < Libro >> che neschematizza l’organizzazione di uno scaffale, dove la stringa utilizzatacome chiave ne identifica il genere. Scrivere poi i seguenti metodi:

I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge unlibro allo scaffale adeguato. Se lo scaffale di quel preciso genere nonesiste, il metodo ne crea uno ad hoc. Da in output true se l’operazioneva a buon fine, false altrimenti.

I public String getGenerePiuEconomico() : Da in output il genere delloscaffale il cui prezzo dei libri, in media, e piu basso.

Scrivere poi un main di prova per testare le funzioni sopra elencate

Melissa Licciardello Fondamenti di Informatica T1 13 / 16

Page 14: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio 3

Un Programma e composto da un titolo, un genere ed una fascia (unenum i cui valori sono VERDE, GIALLO, ROSSO). Ridefinire perquesto i metodi hashCode e equals, oltre ad i getter e setter. UnAppuntamento e composto da un’ora (un intero) ed un giorno dellasettimana (una stringa). Oltre ad i metodi getter e setter, ridefinire imetodi equals e hashCode. Inoltre la classe deve implementarel’interfaccia Comparable (la funzione compareTo deve seguire l’ordinetemporale). Un Canale e composto da un nome ed una mappa< Appuntamento,Programma > che ne indica la programmazione.Definire i seguenti metodi:

I public Set < Programma > programmiPerBambini(String genere) : dain output il set di programmi visionabili da bambini (Fascia VERDE)per un determinato genere.

I public List < Appuntamento > programmazioneProgramma(Stringtitolo) : da in output la lista (ordinata) degli appuntamenti di undeterminato programma durante la settimana.

Scrivere poi un main di prova per testare le funzioni sopra elencate

Melissa Licciardello Fondamenti di Informatica T1 14 / 16

Page 15: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio finale (I)La classe astratta Film e composta da un titolo ed un anno. Inoltredeve mantenere un contatore del numero di voti ricevuti (inizializzatoa zero) ed un codice univoco (la cui generazione dipendedall’implementazione). Deve implementare Comparable in modo cheun insieme di film possa essere ordinato in base ai voti ricevuti.Esibisce inoltre il metodo astratto public void vota(). Esistono dueimplementazioni:

I FilmAnimazione : Come ulteriore attributo ha un enum che ne indica lanazionalita (GIAPPONESE,AMERICANO,EUROPEO). Il codice (chedeve essere generato nel costruttore) ha sintassi ”ANIM” + prime trelettere del titolo + prime due cifre dell’anno. Il metodo vota(), ognivolta che viene invocato, aggiunge un voto al cumulatore dei voti delfilm. Inoltre, ogni dieci voti ricevuti, il film ne deve ricevere uno bonus.

I Cortometraggio: Come ulteriore attributo ha un enum che ne indica ilgenere (COMMEDIA,AZIONE,DRAMMATICO). Il codice (che deveessere generato nel costruttore) ha sintassi ”CORT” + prime due cifredell’anno + prime tre lettere del titolo. Il metodo vota(), ogni voltache viene invocato, aggiunge un voto al cumulatore dei voti del film.

Melissa Licciardello Fondamenti di Informatica T1 15 / 16

Page 16: Fondamenti di Informatica T1 Mappe · come chiave ne identi ca il genere. Scrivere poi i seguenti metodi: I public boolean aggiungiLibro(Libro libro, String genere): Aggiunge un libro

Esercizio finale (II)

La classe Proiezione e composta da due interi che ne indicano l’ora edil numero della sala. Oltre ad i metodi getter e setter deve ridefinire imetodi hashCode() e equals(). La classe Festival e composta da unnome e da una mappa del tipo < Proiezione,Film > che ne indica laprogrammazione. Deve esibire i seguenti metodi :

I public Map < Proiezione,Cortometraggio >programmazioneCorti(Genere genere, int orario) : da in output laprogrammazione dei soli cortometraggi di un certo genere e dopo uncerto orario.

I public List < Film > getClassifica() : da in output la classifica ordinata(e senza ripetizioni!) dei film.

I public FilmAnimazione migliorClassificatoPerNazionalita(Nazionalitanazionalita) : da in output il film di animazione che ha ottenuto ilmaggior numero di voti per una certa nazionalita.

I public boolean vota (String nome film) : vota un film. Da true sel’operazione riesce, false altrimenti.

Scrivere poi un main di prova per testare le funzioni sopra elencate

Melissa Licciardello Fondamenti di Informatica T1 16 / 16


Recommended