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

Slides:



Advertisements
Presentazioni simili
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
Advertisements

Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
29 febbraio 2008 Progettare tipi di dato astratti.
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
MultiSet, Liste Ordinate
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.
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.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Informatica A (informatica grafica) Allievi di Ingegneria Civile, L-Z
Gestione on-line questionari di valutazione della didattica.
Access: Query semplici
memoria gestita staticamente:
Diritto del lavoro Prof. Giancarlo Ricci a.a Programmi, esami e verifiche intermedie.
MANUALE DI PEDAGOGIA GENERALE
1.Scrivere una funzione per cercare un numero x in una lista circolare di interi. La funzione deve restituire NULL se il numero non esiste. 2.Scrivere.
Prof. Maria Teresa Carinci
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: ________________________________________________________________________________.
Tail recursion: esempio
Esercizi su alberi binari di ricerca
IL CORSO SERALE E’ un progetto di scuola finalizzato a stimolare la ripresa degli studi e il recupero di lacune nella formazione, in quanto fondato sulla.
Sessione live Testing. Esercizio Quesito 1 Soluzione 1.
➲ Automazione piani di studio Calendario esami – Web docenti Servizi online.
Università degli Studi dell’Aquila
1 Laboratorio di Introduzione alla Programmazione-Informazioni §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
1 Informazioni sull’esame §Esame orale su tutti gli argomenti trattati a lezione §Seminario: studio di un argomento avanzato, tipicamente di un formalismo.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
1 LABORATORIO DI INFORMATICA Ingegneria Informatica Dott. Giorgio Cicerchia a.a ° Ciclo.
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.
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 Gerarchie e polimorfismo: liste. 2 Generalizzare le liste di interi  List 4 lista di oggetti –non modificabile 4 vorremo poi definire un sottotipo.
1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
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: 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 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 14 Marzo Esercizio dell’altra volta Definire un tipo di dato Abbonato i cui oggetti descrivono le informazioni relative ad un abbonato.
Esercitazione del 9 marzo 2007 Ereditarieta’. Richiami Definire sottoclassi (ereditarieta’) Overriding Specificatori di accesso (private, protected) Principio.
Liste Concatenate 28 Marzo Avviso Martedi’ 4 Aprile: Verifica di LIP Per iscriversi (obbligatorio) inviare un e- mail entro venerdi’ 31 Marzo a.
Progetto Parte II OCAML.
1 Metodologie di Programmazione §tecniche per la programmazione orientata ad oggetti §esemplificate utilizzando il linguaggio Java §testo di riferimento.
1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (6 crediti totali)
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.
Manuale Utente – i-Sisen Questionario dei Consumi
Manuale Utente – i-Sisen Questionario del Gas Naturale
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Prof. Romano Boni ECONOMIA AZIENDALE AA Note Organizzative.
Corso di Laurea in Scienze dell’Educazione Docimologia
TESI ORD. 270/04 (Regolamento Didattico del Corso, CdF 19 aprile 2012) -un’attività formativa a cui sono assegnati 15 CFU -che si svolge in un periodo.
TESI ORD. 270/04 (Regolamento Didattico del Corso, CdF 19 aprile 2012) -un’attività formativa a cui sono assegnati 15 CFU -che si svolge in un periodo.
Laboratorio di Ingegneria del Software Laboratorio di Ingegneria del Software Primo Incontro Titolare Prof. Pierluigi Sanpietro.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 15 Giugno.
F ARE IL LOGIN Fare il login inserendo nome utente a password che vi avrà fornito l’ amministratore.
Transcript della presentazione:

1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (su 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 che hanno *frequentato* §Sulla pagina web la lista degli studenti che hanno frequentato l’80 % delle lezioni §Gli studenti lavoratori e/o gli studenti degli anni precedenti (anche se non hanno frequentato)

4 Modalita’ per lo svolgimento del progetto §Gli studenti degli anni precedenti (devono rivolgersi alla Prof. Occhiuto) §Gli studenti che hanno frequentato nel devono svolgere il progetto che verra’ presentato oggi

5 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 gruppi (di due, tre persone) §Tutti gli altri devono svolgere il progetto individualmente

6 Modalita’ per i gruppi §Al momento della consegna deve essere comunicato al docente chi sono gli appartenenti al gruppo §La prova orale deve essere individualmente da parte di ogni partecipante al gruppo §Puo’ essere svolta in momenti diversi

7 Quando si puo’ consegnare il progetto? § Ad ogni sessione d’esame §Sessione estiva: entro 8 luglio §Sessione autunnale: da fissare (settembre) §Orali: da concordare volta per volta (vedi pagina web del corso)

8 Inoltre §Devono essere spediti per tutti i files § Programma “Funzionante” §Corredato da una relazione che spieghi le principali scelte di progetto

9 Problema §Vogliamo progettare un tipo di dato astratto Agenda Memorizza i 12 mesi, e per ognuno i 30 (per semplicita’) giorni Per ogni giorno memorizza una Lista Ordinata di Appuntamenti

10 Appuntamento §Memorizza l’ora (int) e il nome della persona (String) In particolare vogliamo che in ogni appuntamento l’ora sia tra 0 e 24.

11 Lista di appuntamenti La lista deve essere ordinata in ordine crescente in base all’ora (9.00,Fabio), (11.00,Andrea), …. Si richiede che non ci siano nella lista due appuntamenti in un intervallo minore di 30 minuti Esempio: (9.00,Fabio), (9.15,Andrea), ….

12 Agenda Per capire come deve essere progettato il tipo di dato e quali tipi di dato ausiliari servono Operazioni che richiediamo -per crearla -per modificarla -per cercare informazioni Saranno realizzate da opportuni costruttori e metodi d’istanza che costituiscono la specifica della classe Agenda, tipo di dato modificabile

13 Agenda: creazione ed inserimento Creazione: crea una agenda vuota (e.g. la lista degli appuntamenti per ogni giorno e mese e’ vuota) inserisci: -dati come parametro l’ora (int) o ed il nome (String) n dell’appuntamento, ed il giorno g e mese m (int) -inserisce l’appuntamento (o,n) nella lista del giorno g e mese m (in modo ordinato) -dovranno essere usate opportune eccezioni quando non puo’ essere inserito (p.e. c’e’ gia’ un appuntamento per quell’ora)

14 Agenda: ricerca cercanome: -dati come parametro l’ora (int) o dell’appuntamento, ed il giorno g e mese m (int) -restituisce il nome s dell’appuntamento (o,s) del giorno g e mese m (se esiste) -altrimenti solleva una opportuna eccezione cercaora: -dati come parametro il nome (String) n dell’appuntamento, ed il giorno g e mese m (int) -restituisce l’ora o dell’appuntamento (o,n) del giorno g e mese m (se esiste) -altrimenti solleva una opportuna eccezione

15 Agenda: ricerca next: -dati come parametro il giorno g e mese m (int) -restituisce il primo appuntamento del giorno g e mese m(se esiste) -altrimenti solleva opportune eccezioni cercaall: -dati come parametro il giorno g e mese m (int), ed un nome n (String) -restituisce il primo appuntamento con nome n, a partire dal giorno g e mese m (se esiste) -altrimenti solleva opportune eccezioni

16 Agenda: ricerca prossima: -dati come parametro il giorno g e mese m (int) -restituisce la prima ora libera del giorno e mese m (se esiste) -altrimenti solleva opportune eccezioni

17 Agenda: operazioni per modificarlo cambianome: -dati come parametro l’ora (int) o dell’appuntamento, ed un nome s (String), il giorno g e mese m (int), ed un nome n (String) - modifica l’appuntamento (o,s) del giorno g e mese m (se esiste), rimpiazzandolo con (o,n) -altrimenti solleva una opportuna eccezione cambiaora: dati come parametro l’ora (int) o dell’appuntamento, ed un nome s (String), il giorno g e mese m (int), ed un intero n - modifica l’appuntamento (o,s) del giorno g e mese m (se esiste), rimpiazzandolo con (n,s) -altrimenti solleva una opportuna eccezione

18 Agenda: operazioni per modificarlo rimuovi: -dati come parametro l’ora (int) o dell’appuntamento, ed un nome s (String), il giorno g e mese m (int) - rimuove l’appuntamento (o,s) del giorno g e mese m (se esiste), -altrimenti non fa nulla rimuoviprimo: dati come parametro il giorno g e mese m (int) - rimuove il primo appuntamento del giorno g e mese m (se esiste),

19 Tipi di Dato Ausiliari Dipende da come si vuole implementare l’Agenda Appuntamento: per memorizzare le informazioni relative ad un appuntamento (ora,nome) Giorno: per memorizzare la lista ordinata di appuntamenti relativa ad un dato giorno

20 Appuntamento E’ un tipo record (ora,nome): bisogna garantire i vincoli sui valori di ora Che operazioni servono (realizzate da opportuni costruttori e metodi d’istanza)? Dipende dall’uso che ne dovete fare per risolvere il problema dell’Agenda

21 Giorno Deve memorizzare le informazioni relative alla lista di appuntamenti di un singolo giorno Gli appuntamenti sono ordinati in base all’ora Devono valere i vincoli visti in precedenza Che operazioni servono (realizzate da opportuni costruttori e metodi d’istanza)? Dipende dall’uso che ne dovete fare per risolvere il problema dell’Agenda

22 Come procedere? Partire da una specifica delle tre classi, Agenda, Giorno, Appuntamento Specifica: costruttori, metodi, pre e post condizioni I commenti ai metodi sono parte integrante del progetto

23 Implementazione Scegliere la rappresentazione piu’ adeguata per ogni tipo di dato Esempio: Agenda deve memorizzare 12 mesi, ognuno con 30 giorni POSSIBILE SCELTA: array di Giorni Esempio: Giorno deve memorizzare una lista di appuntamenti POSSIBILE SCELTA: lista concatenata ordinata

24 Implementazione La rappresentazione per ogni tipo di dato deve essere private Scelta la rappresentazione passare all’implementazione dei metodi Possono essere necessarie modifiche, aggiunte nei metodi delle classi tra loro collegate (raffinamenti successivi) ESEMPIO: una delle richieste per Agenda richiede di aggiungere una operazione in piu’ in Giorno

25 Relazione §Deve contenere una breve descrizione dei tipi di dato scelti per realizzare l’agenda §Puo’ essere inclusa nei commenti al codice (se fatti in modo serio)

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

27 Ricevimento §Non ci saranno piu’ lezioni (ma io verro’ comunque varie volte a fare gli esami) §Per qualsiasi problema: