Fondamenti di Informatica T-1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Fondamenti di Informatica T-1"

Transcript

1 Fondamenti di Informatica T-1 Mappe Tutor: Allegra De Filippo a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 1

2 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

3 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, ); String numerocercato = elenco.get(p); Fondamenti di Informatica T-1 Allegra De Filippo 3 / 1

4 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

5 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

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

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

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

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

10 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

11 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

12 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

13 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

14 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

Fondamenti di Informatica T1 Mappe

Fondamenti di Informatica T1 Mappe Fondamenti di Informatica T1 Mappe Tutor Melissa Licciardello [email protected] Melissa Licciardello Fondamenti di Informatica T1 1 / 16 Mappe Matrice N x 2 : Gli elementi della prima colonna,

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

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

Fondamenti di Informatica T-1. Classi e metodi astratti

Fondamenti di Informatica T-1. Classi e metodi astratti Classi e metodi astratti 2 Classi astratte L'ereditarietà è utile per rappresentare tassonomie e gerarchie di entità reali. Non sempre però tutti i livelli della gerarchia rappresentano entità concrete.

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

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

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna: Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione

Dettagli

Fondamenti di Informatica T-1. Costruttori Ereditarietà

Fondamenti di Informatica T-1. Costruttori Ereditarietà Costruttori Ereditarietà 2 Costruttori Si occupano della creazione e dell'allocazione in memoria degli oggetti. public class Persona{ //Variabili di istanza private String nome; private String cognome;

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

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

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Stringhe Tutor: Allegra De Filippo [email protected] a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 13 STRINGHE: Definizione e creazione Stringa

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

Prova di Laboratorio di Programmazione

Prova di Laboratorio di Programmazione Prova di Laboratorio di Programmazione 29 gennaio 2015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo Lo scopo è realizzare un programma che permetta di svolgere alcune

Dettagli

Programmazione 1 A.A. 2015/2016

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,

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

Esercitazione. Docente Ing. Mariateresa Celardo

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

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

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

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

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

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

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

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

Prof. Massimiliano Giacomin 19 dicembre NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli INFORMATICA E PROGRAMMAZIONE Prof. Massimiliano Giacomin 19 dicembre 2018 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli 1. Si consideri il seguente codice per

Dettagli