Fondamenti di Informatica T-1
|
|
|
- Ugo Scarpa
- 9 anni fa
- Visualizzazioni
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 Tutor Melissa Licciardello [email protected] Melissa Licciardello Fondamenti di Informatica T1 1 / 16 Mappe Matrice N x 2 : Gli elementi della prima colonna,
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:
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
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.
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
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
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;
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
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
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
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
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
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,
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
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
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
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
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
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,
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
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
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
