Fondamenti di Informatica T-1

Documenti analoghi
Fondamenti di Informatica T1 Mappe

ESERCIZIO 1 ESERCIZIO 1

ESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1:

Fondamenti di Informatica T-1. Classi e metodi astratti

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

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Fondamenti di Informatica T-1. Costruttori Ereditarietà

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

E17 Esercizi sugli Array in Java

Fondamenti di Informatica T-1

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

Prova di Laboratorio di Programmazione

Programmazione 1 A.A. 2015/2016

Alberi Binario in Java

Esercitazione. Docente Ing. Mariateresa Celardo

hashmap.pdf Pag. 1/6 Cozzetto

Esempio su strutture dati dinamiche: ArrayList

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni

Preparazione allo Scritto di Programmazione

Esempio: Tombola! Vogliamo progettare una applicazione che realizza il gioco della tombola Versione semplificata: un banco, un

Esercitazione n 2. Obiettivi

Prof. Massimiliano Giacomin 19 dicembre NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli

Transcript:

Fondamenti di Informatica T-1 Mappe Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 1

Mappe: definizione Tabelle a due colonne: le chiavi (1a colonna) identificano univocamente i valori nella 2a colonna. Si può accedere direttamente ad un valore, conoscendo la chiave associata Primitive: T2 put(t1 k, T2 v) Inserisce una coppia chiave-valore nella mappa T2 get(t1 k) Restituisce il valore associato ad una determinata chiave passata come argomento T2 remove(t1 k) Rimuove il valore associato ad una determinata chiave passata come argomento int size() Restituisce la cardinalità della mappa boolean isempty() Verifica se la mappa è vuota Set< T 1 > keyset() Restituisce il set delle chiavi Implementazione HashMap Fondamenti di Informatica T-1 Allegra De Filippo 2 / 1

Esempio: elenco telefonico Mappe: esempio Ad ogni persona (nome, cognome, indirizzo) è associato un numero di telefono Map<Persona,String> elenco = new HashMap<Persona, String>(); Persona p = new Persona( Mario, Rossi, Via col vento, 18 ); elenco.put(p, 051123456 ); String numerocercato = elenco.get(p); Fondamenti di Informatica T-1 Allegra De Filippo 3 / 1

ESERCIZIO 1 (SVOLTO (1)) Un Libro è composto da un titolo ed un prezzo. Oltre ad i metodi getter e setter, ridefinire i metodi equals e hashcode. Due libri sono uguali se hanno lo stesso titolo. 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. Fondamenti di Informatica T-1 Allegra De Filippo 4 / 1

ESERCIZIO 1 (SVOLTO (2)) Scrivere 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. Restituisce in output true se l operazione va a buon fine, false altrimenti. public String getgenerepiueconomico(): restituisce in output il genere dello scaffale il cui prezzo dei libri, in media, è più basso. Scrivere un main di prova per testare le funzioni sopra elencate. Fondamenti di Informatica T-1 Allegra De Filippo 5 / 1

ESERCIZIO 1 (SOLUZIONE Classe Libro) Fondamenti di Informatica T-1 Allegra De Filippo 6 / 1

ESERCIZIO 1 (SOLUZIONE Classe Libreria (1)) Fondamenti di Informatica T-1 Allegra De Filippo 7 / 1

ESERCIZIO 1 (SOLUZIONE Classe Libreria (2)) Fondamenti di Informatica T-1 Allegra De Filippo 8 / 1

ESERCIZIO 1 (SOLUZIONE Classe Main) Fondamenti di Informatica T-1 Allegra De Filippo 9 / 1

ESERCIZIO 2 (1) 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. Due programmi sono uguali se hanno lo stesso titolo. 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). Fondamenti di Informatica T-1 Allegra De Filippo 10 / 1

ESERCIZIO 2 (2) 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) : restituisce in output il set di programmi visionabili da bambini (Fascia VERDE) per un determinato genere. public List <Appuntamento> programmazioneprogramma(string titolo) : restituisce in output la lista (ordinata) degli appuntamenti di un determinato programma durante la settimana. Scrivere un main di prova per testare le funzioni sopra elencate. Fondamenti di Informatica T-1 Allegra De Filippo 11 / 1

ESERCIZIO 3 (1) Si scriva un programma che definisca opportuni classi, costruttori e metodi per un servizio di telefonia. I dati gestiti dal programma sono relativi a: Tariffe, caratterizzate da: codice, nome. Telefonate, caratterizzate da: sorgente (numero chiamante), destinazione (numero chiamato), durata, data (gg/mm/aaaa). Le tariffe si suddividono in: Flat (codice F-< #progressivo>), con un canone mensile. A minuti (codice M-< #progressivo>), con costo al minuto e scatto alla risposta. Si supponga che tali informazioni siano contenute in una classe GestoreTelefonico nelle strutture dati: un vettore tariffe, contenente le tariffe (max 15); un insieme telefonate, contenente le telefonate; una mappa tariffeutenti, che associa numero-tariffa. Fondamenti di Informatica T-1 Allegra De Filippo 12 / 1

Si definiscano i seguenti metodi: ESERCIZIO 3 (2) cercatariffa che, dato il nome di una tariffa, restituisca la tariffa corrispondente registrautente che, dato il numero di un utente e il nome di una tariffa, aggiunga alla mappa una nuova coppia numero-tariffa. Si utilizzi il metodo cercatariffa telefonatemensili che, dati il numero di telefono di un utente e una stringa contenente un mese di riferimento (mm/aaaa), restituisca la lista delle telefonate effettuate dall utente in quel mese. calcolacostomensile che, dati il numero di telefono di un utente e una stringa contenente un mese di riferimento (mm/aaaa), calcoli l importo dovuto dall utente: se l utente ha una tariffa flat, paga solo il canone mensile, altrimenti, l importo dato dalla somma dei costi delle singole telefonate (durata * costo al minuto + scatto alla risposta). Fondamenti di Informatica T-1 Allegra De Filippo 13 / 1

ESERCIZIO 3 (3) Il programma principale deve, infine, svolgere seguenti punti: chiedere all utente numero di telefono e il nome di una tariffa e invocare il metodo registrautente per la registrazione richiedere all utente numero di telefono e un mese e invocare il metodo calcolacostomensile, stampando a video il risultato. Fondamenti di Informatica T-1 Allegra De Filippo 14 / 1