1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (6 crediti totali)

Slides:



Advertisements
Presentazioni simili
MODULO 3 – ELABORAZIONE TESTI
Advertisements

Comunicare con la posta elettronica (7.4)
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
MultiSet, Liste Ordinate
Le gerarchie di tipi.
Esercitazione Frame. Argomento Realizzazione di un tipo di dato astratto Usare le eccezioni per segnalare situazioni particolari Invariante e funzione.
LIP: 19 Aprile Contenuto Soluzione Compitino Tipo di dato MultiSet, estensione con sottoclasse.
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Facoltà di Psicologia a.a.2011/2012 A cura di Tiziana Fusaro e Lucia Marchesi Guida pratica per gli studenti.
Per sapere quali libri di un certo autore ci sono in biblioteca scegli la ricerca per liste.
Alberi binari di ricerca
Valutazione del corso Schede da riempire in modo anonimo ANNO ACCADEMICO 2009/2010.
Metodi e tecniche di analisi dei dati con Laboratorio (4+4 crediti) Specialistica in Psicologia dei Processi Cognitivi (A31) I anno Prof.ssa Francesca.
Metodologia e tecniche della ricerca in psicologia clinica con Laboratorio (6+2 crediti) Specialistica in Psicologia clinica (A30) I anno Prof.ssa Francesca.
MODALITA DESAME. La prova d'esame si svolge nei seguenti passaggi: 1.Dal sito ufficiale collegamento all'indirizzo:
Valutazione del corso Schede da riempire in modo anonimo.
Gestione on-line questionari di valutazione della didattica.
06/10/2009Basi di dati , presentazione1 Basi di dati (ordinamento DM 509/1999) Basi di dati I (ordinamento DM 270/2004) DocentePaolo.
Access: Query semplici
MANUALE DI PEDAGOGIA GENERALE
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Per valutare la complessità ammortizzata scomponiamo ogni Union: nelle due FindSet e nella Link che la costituiscono e valuteremo la complessità in funzione.
1 Astrazioni sui dati : Ragionare sui Tipi di Dato Astratti dispense prof. G. Levi.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Cos’è l’ECDL ? La European Computer Driving Licence (ECDL) è un certificato, riconosciuto a livello internazionale, attestante che chi lo possiede ha l'insieme.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Sessione live Testing. Esercizio Quesito 1 Soluzione 1.
Università degli Studi dell’Aquila
Alberi CORDA – Informatica A. Ferrari Testi da
1 Laboratorio di Introduzione alla Programmazione-Informazioni §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
Progetto Finale Laboratorio di Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Logica Lezioni Lunedì 18 Nov. Annuncio E' possibile che dovrò rinviare delle lezioni della prossima settimana. Tenete d'occhio gli annunci.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Liste di Interi Esercitazione. Una variante Liste concatenate di Integers Non modificabile Costruttori per creare la lista vuota o un nodo Metodi d’istanza.
Ripasso su Java. Introduzione Per risolvere problemi complessi, i linguaggi di programmazione forniscono costrutti per realizzare nuove funzioni che trasformino.
Compitino del 2004 Alberi Generici. Idea Si vuole un tipo di dato astratto che definisca una struttura ad albero in cui nodi e foglie hanno associato.
Liste Concatenate 11 Aprile E’ una delle strutture dati fondamentali in tutti i linguaggi di programmazione di alto livello Una Lista Concatenata.
Liste di Interi Esercitazione. IntList Lista di interi Una lista è una disposizione ordinata di elementi ( non in modo crescente-descrescente, ma per.
1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
1 Analisi ammortizzata Si considera il tempo richiesto per eseguire, nel caso pessimo, una intera sequenza di operazioni. Se le operazioni costose sono.
Valutazione del corso Schede Modalita`. Compitini intermedi Tre compiti intermedi a risposta multipla 10 domande con 5 risposte di cui 1 sola giusta 4.
Ese 3 (del 3 Aprile 2003). Testo Progettare la specifica e l’implementazione del tipo di dato astratto modificabile Stack, supponendo che gli elementi.
Esercitazione del 7 marzo 2008 Ereditarieta’. Esercizio: soluzione Implementare la seguente specifica che definisce un tipo di dato Libro.
1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
1 Laboratorio di Introduzione alla Programmazione-Informazioni §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
LIP: 22 Marzo 2005 Eccezioni. Eccezioni-Richiami Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
Valutazione del corso Schede Modalita`. Compitini intermedi Tre compiti intermedi a risposta multipla 10 domande con 5 risposte di cui 1 sola giusta 4.
LIP: 2 Maggio 2008 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
1 Metodologie di Programmazione §tecniche per la programmazione orientata ad oggetti §esemplificate utilizzando il linguaggio Java §testo di riferimento.
Ese 1 e 3 (del 6 Aprile 2005). Primo Ese Si identifichino gli errori che il compilatore segnalerebbe per il seguente programma Tipi Legami tra dichiarazioni.
LIP: 11 Maggio 2007 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Esercitazione del 9 marzo 2007 Ereditarieta’. Richiami Definire sottoclassi (ereditarieta’) Overriding Specificatori di accesso (private, protected) Principio.
LIP: 4 Maggio 2007 Interfacce. Cos’e’ una Interfaccia una interfaccia e’ un particolare tipo di classe contiene solo la specifica non ha implementazione.
LIP: 15 Marzo 2005 Vettori di interi. Esercizio proposto Definire una classe VectorInt i cui oggetti sono vettori omogenei di interi ordinati in modo.
Prof. Romano Boni ECONOMIA AZIENDALE AA Note Organizzative.
GUIDA ALL’UTILIZZO DEL
Psicometria A – I semestre
Prof. Romano Boni ECONOMIA AZIENDALE AA Note Organizzative.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Manuale Utente – i-Sisen Questionario del Gas Naturale
Prof. Romano Boni ECONOMIA AZIENDALE AA Note Organizzative.
Le basi di dati.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 15 Giugno.
Transcript della presentazione:

1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (6 crediti totali)

2 Modalita’ d’Esame §esame = progetto finale + orale l prove di verifica intermedia l non *necessarie*, verranno comunque considerate come parte fondamentale per il voto finale l analogamente alla valutazione del rendimento dimostrato durante le esercizitazioni in Laboratorio

3 Chi puo’ presentare il progetto §Gli studenti degli anni precedenti (devono rivolgersi alla Prof. Occhiuto) §Gli studenti che hanno frequentato nel possono svolgere il progetto che verra’ presentato oggi

4 Modalita’ per lo svolgimento del progetto §Come deve essere svolto? Dipende dalla valutazione ottenuta durante l’anno §Gli studenti che hanno ottenuto una valutazione sufficiente (vedi pagina WEB) possono svolgere il progetto in gruppo (di due, tre persone al massimo) §Tutti gli altri devono svolgere il progetto individualmente

5 Modalita’ per i gruppi §Il progetto deve essere consegnato una sola volta §Al momento della consegna deve essere comunicato al docente chi sono gli appartenenti al gruppo §La prova orale deve essere sostenuta individualmente da ogni partecipante al gruppo §Puo’ essere svolta in momenti diversi

6 Quando si puo’ consegnare il progetto? § Ad ogni sessione d’esame §Sessione estiva: entro 13 luglio 2008 §Sessione autunnale: da fissare (settembre) §Orali: da concordare volta per volta §Tutte le informazioni sono disponibili sulla pagina web del corso

7 Validita’ del progetto § Fino a settembre §Sessione invernale: nuovo progetto da concordare volta per volta (richiedendolo al docente)

8 Inoltre §Devono essere spediti per tutti i files classe.java in un archivio.zip o.gz indicando il nome (i nomi) dei partecipanti

9 Cosa deve contenere? §Programma “Funzionante” §Una relazione che spieghi le principali scelte di progetto

10 Obiettivo del Progetto §Progettare un semplice tipo di dato astratto §Partiamo dal problema

11 Problema §Vogliamo progettare un tipo di dato astratto Biblio Un Biblio rappresenta -un insieme di Scaffali numerati 1, ,n n fisso (parametro) -ogni Scaffale puo’ contenere al massimo k items k fisso(parametro)

12 Che cosa e’ un item?  Un Libro oppure  Una Rivista

13 Libro §Vogliamo che memorizzi titolo, autore,editore numero di copie disponibili (>0) (“Le affinita’ elettive”, “Goethe”, “Einaudi”, 20) (“Do the androids dream of electric sheeps?”, “Dick”, “Feltrinelli”, 2)

14 Rivista §Vogliamo che memorizzi titolo, autore,editore numero numero di copie disponibili (>0) (“Science of Computer Programming”, “Milner”, “Elsevier Science”, 3, 20) (“Science of Computer Programming”, “Milner”, “Elsevier Science”, 4, 10)

15 Proprieta’ degli scaffali Vogliamo per costruzione delle proprieta’ degli scaffali Ogni scaffale contiene SOLO LIBRI o SOLO RIVISTE Per semplicita’ assumiamo che 1) scaffali tra L1 e Ln contengono libri 2) scaffali tra R1e Rn e n contengono riviste n (parametro)

16 Proprieta’ degli scaffali I Vogliamo sia nel caso di Libri che di Riviste che gli item siano memorizzati in modo ordinato

17 Libri: ordinamento in base al titolo se titolo uguale in base all’autore se titolo e autore uguali in base all’editore

18 Esempio (“Le affinita’ elettive”, “Goethe”, “Einaudi”, 20) > (“Do the androids dream of electric sheeps?”, “Dick”, “Feltrinelli”, 2) > (“Do the androids dream of electric sheeps?”, “Dick”, “Einaudi”, 10)

19 Riviste: ordinamento in base al titolo se titolo uguale in base all’autore se titolo e autore uguali in base all’editore se titolo, autore, editore uguali in base al numero

20 Esempio (“Science of Computer Programming”, “Milner”, “Elsevier Science”, 3, 20) < (“Science of Computer Programming”, “Milner”, “Elsevier Science”, 4, 10) (“Science of Computer Programming”, “Milner”, “Elsevier Science”, 3, 20) < (“Theoretical Computer Science”, “harel”, “Elsevier Science”, 4, 100)

21 Proprieta’ degli scaffali II Vogliamo che il numero di pezzi totali degli item presenti in ogni scaffale sia minore o uguale della dimensione (k parametro fisso)

22 Esempio: dimensione 20 [ (“Do the androids dream of electric sheeps?”, “Dick”, “Feltrinelli”, 2), (“Le affinita’ elettive”, “Goethe”, “Einaudi”, 10)] [ (“Do the androids dream of electric sheeps?”, “Dick”, “Feltrinelli”, 11), (“Le affinita’ elettive”, “Goethe”, “Einaudi”, 10)] OUT OF BOUNDS !

23 Proprieta’ degli scaffali III Per motivi di efficienza vogliamo che non compaiano ripetizioni di items (Libri o Riviste)

24 Esempio: ripetizioni [ (“Do the androids dream of electric sheeps?”, “Dick”, “Feltrinelli”, 2), (“Do the androids dream of electric sheeps?”, “Dick”, “Feltrinelli”, 10)] Non e’ una rappresentazione efficiente. Meglio usare [ (“Do the androids dream of electric sheeps?”, “Dick”, “Feltrinelli”, 12)]

25 Proprieta’ della Biblio collezione di scaffali di Libri collezione di scaffali di Riviste Ogni scaffale deve avere le proprieta’ viste in precedenza

26 Proprieta’ della Biblio Inoltre per entrambe le collezioni vogliamo --l’ultimo item dello scaffale i precede o e’ uguale al primo item dello scaffale i+1 --lo scaffale i puo’ contenere items solo se tutti gli scaffali j con j<i sono pieni

27 Esempio 1=[L1,L2,L3,L4] 2=[L5,L6] deve essere L5 <L6 e la dimensione 4 (assumendo i libri con occorrenze 1) Se la dimensione e’ 5==> 1=[L1,L2,L3,L4,L5] 2=[L6]

28 Operazioni §Abbiamo visto le proprieta’ dei dati astratti Biblio §Vediamo le operazioni

29 Inializzazione: parametri §la dimensione degli scaffali (k) §il numero di scaffali dei due tipi (n) §la dimensione e’ >0

30 Operazioni  capacity-libro restituisce il numero di occorrenze per Libri ancora liberi  capacity-rivista restituisce il numero di occorrenze per Riviste ancora liberi

31 Operazioni  number-l §prende come parametro l’autore, il titolo e l’editore restituisce il numero di occorrenze del Libro corrispondente presente in this

32 Operazioni  number-r §prende come parametro l’autore, il titolo, l’editore ed il numero restituisce il numero di occorrenze della Rivista corrispondente presente in this

33 Operazioni  alllibri restituisce il numero di Libri presenti in this (come numero di occorrenze)

34 Operazioni  allriviste restituisce il numero di Riviste presenti in this (come numero di occorrenze)

35 Operazioni  scaffale-l §prende come parametro un titolo, un autore, un editore ed un numero di occorrenze x restituisce il numero di uno scaffale in cui si trovano almeno x occorrenze del libro corrispondente se non ci sono restituisce 0

36 Operazioni  scaffale-r §prende come parametro un titolo, un autore, un editore, un numero ed un numero di occorrenze x restituisce il numero di uno scaffale in cui si trovano x occorrenze della rivista corrispondente altrimenti restituisce 0

37 Operazioni  libro-titoli §prende come parametro un autore restituisce il numero di titoli differenti di Libri di tale autore se non ce ne sono restituisce 0

38 Operazioni  rivista-titolo §prende come parametro un autore ed un titolo restituisce il numero di numeri differenti di Riviste tale autore e titolo se non ce ne sono restituisce 0

39 Modificatori  insert-l §prende come parametro un titolo, un autore, un editore, un numero di occorrenze x se il numero di pezzi di x supera il limite sulla dimensione della Biblio solleva SizeException (controllata) altrimenti, inserisce il Libro (come abbiamo descritto in precedenza)

40 Modificatori  insert-r §prende come parametro un titolo, un autore, un editore, un numero, un numero di occorrenze x se il numero di pezzi di x supera il limite sulla dimensione della Biblio solleva SizeException (controllata) altrimenti, inserisce la rivista (come abbiamo descritto in precedenza)

41 Esempio: inserimento 1=[L1,L2,L3,L4] 2=[L5,L6] (assumendo i libri con occorrenze 1 e la dimensione 4) Se devo inserire L tale che L3 1=[L1,L2,L3,L] 2=[L4,L5,L6] devono essere shiftati! attenzione alle ripetizioni!!!

42 Modificatori  remove-l  prende come parametro un titolo, un autore, un editore ed un numero di pezzi x se gli scaffali di Libri non contengono almeno x occorrenze del libro corrispondente solleva l’eccezione NotFoundException (controllata) altrimenti rimuove dagli scaffali x occorrenze del Libro corrispondente

43 Modificatori  remove-r  prende come parametro un titolo, un autore, un editore, un numero ed un numero di pezzi x se gli scaffali di Riviste non contengono almeno x occorrenze della rivista corrispondente solleva l’eccezione NotFoundException (controllata) altrimenti rimuove dagli scaffali x occorrenze della Rivista corrispondente

44 Modificatori  svuota-scaffale §prende come parametro il numero i di uno scaffale di Libri o Riviste elimina tutto il contenuto dello scaffale se non esiste lo scaffale i-esimo solleva una opportuna eccezione

45 Modificatori  aggiungi-scaffale  prende come parametro un intero i >0 aggiunge i Scaffali sia di Libri che di Riviste

46 Modificatori  union §prende come parametro una Biblio b §modifica this facendo l’unione con b

47 Subset  subset §prende come parametro una Biblio b §restituisce -1 se this e’ un sottoinsieme di b, resituisce 0 se sono uguali, 1 se b e’ sottoinsieme di this §solleva un’ eccezione se non sono confontabili ATTENZIONE (L1,x) appartiene {(L1,y)} se x <=y

48 Proprieta’ della Biblio §Devono essere garantite per costruzione §Costruttori §Metodi d’istanza modificatori §Per esempio se si svuota lo scaffale 3, gli items degli scaffali successivi devono essere spostati

49 Esempio: rimuoviamo lo scaffale 1 1=[L1,L2,L3,L4] 2=[L5,L6,L7,L8] 3=[L9,L10,L11,L12] (assumendo i libri con occorrenze 1 e la dimensione 4) 1=[L5,L6,L7,L8] 2=[L9,L10,L11,L12]

50 Come procedere? Partire dalla specifica del tipo di dato principale Biblio Specifica: costruttori, metodi e descrizione informale (pre e post condizioni) Devono realizzare le richieste descritte in precedenza I commenti alle classi sono parte integrante del progetto

51 Tipi di dato ausilari La specifica del magazzino si basa su alcuni tipi di dato ausiliari: Libro e Rivista E’ necessario darne specifica ed implementazione Lo stato degli oggetti deve memorizzare le informazioni richieste Quali Operazioni? A scelta: ---pensare ad un insieme di operazioni significativo ---semplifichino e supportino la realizzazione del tipo di dato principale Scelte di progetto spiegate e motivate nella relazione

52 Implementazione Scegliere la rappresentazione piu’ adeguata per ogni tipo di dato Non ci sono vincoli sul modo in cui realizzarlo (purche’ funzioni)

53 Verranno apprezzate Uso delle liste concatenate (per esempio per memorizzare la collezione degli scaffali sia di Libri che di Riviste) Se ci sono h scaffali uno potrebbe usare un array di dimensione h In posizione i-esima una lista ordinata di Libri potrebbe rappresentare lo scaffale i-esimo Un po’ complesso spostare le cose da uno scaffale all’altro!! Piu’ semplice usare una lista concatenata in cui i nodi riportano l’info sul numero di scaffale in cui siamo

54 Verranno apprezzate L’uso dell’ereditarieta’: e’ evidente che i tipi di dato Libro e Rivista hanno qualcosa in comune (si possono usare tipi e sottotipi?) Analogamente : le due collezioni di scaffali hanno qualcosa in comune (si possono realizzare nello stesso modo?)

55 Testing §Deve essere realizzato tramite un opportuno metodo main (in modo standard) §Deve essere inviato insieme ai files del progetto §NOTA: il progetto deve essere inviato una ed una sola volta nella versione finale (funzionante)