METODOLOGIE DI PROGRAMMAZIONE; a.a. 2004

Corso A

Prof. M. Bellia

 

 

(Esercizio 5.1)

Modificare la classe Coppia, incluso specifiche e funzioni AF ed I, per trattare coppie modificabili con stringa non nulla.

(soluzione parziale)

Introdurre e implementare i metodi toString() e repOk().

 

(Esercizio 5.2)

Modificare la classe Coppia per renderla adeguata a programmi nei quali sia richiesta la generazione di coppie che differiscono tra loro per uno solo dei due componenti.

 

(Esercizio 5.3)

Si dia specifica e implementazione di una classe Queue modificabile di Object non null, fornendo AF e I e utilizzando strutture Vector per lo stato concreto.

Modificare la classe Queue, incluso specifiche e funzioni AF ed I, per trattare code modificabili di Object utilizzando per l'implementazione arrays.

(soluzione1: con ordine visita coda crescente con indice e metodi modificatori É

 soluzione2: con ordine visita coda decrescente con indice e metodi modificatori É)

 

(Esercizio 5.4)

Si discuta la relazione tra specifica e implementazione rispetto alle due implementazioni utilizzate per code modificabile; quella basata su vector, quella basata su arrays.

(soluzione parziale)

 

(Esercizio 5.5)

Modificare la classe Queue, incluso specifiche e funzioni AF ed I, per trattare code modificabili di Object utilizzando per l'implementazione strutture di records (oggetti) collegati tra loro.

(soluzione)

 

(Esercizio 5.6)

Si mostri la correttezza del metodo dequeue nella classe Queue, implementata con vector.

(soluzione)

 

(Esercizio 5.7)

Si mostri la correttezza del metodo dequeue nella classe Queue, implementata con array come in Esercizio 3.

 

(Esercizio 5.8)

Si mostri la correttezza del metodo dequeue nella classe Queue, implementata con record come in Esercizio 5.

 

(Esercizio 5.9)

Si dia la certifica della classe Coppia non modificabile (soluzione)

 

(Esercizio 5.10)

Si dia la certifica della classe Coppia modificabile

 

(Esercizio 5.11)

Si dia specifica, implementazione e certifica di una classe Coppia modificabile di interi positivi ordinati in modo tale che il componente sinistro risulti minore del componente destro. Si completi la classe con la definizione:

(1) dell' additional equals per oggetti modificabili (che calcola true se e solo se il parametro attuale è lo stesso oggetto a cui è applicato il metodo)
(2) dell' additional clone per oggetti modificabili (che calcola una copia identica ma indipendente dell'oggetto modificabile)
(3) Si commenti la relazione tra le nuove definizioni e quelle erditate da Object

(soluzione parziale)

 

(Esercizio 5.12)

Si dia specifica, implementazione e certifica di una classe Set per insiemi non modificabili di oggetti della classe Coppia definita in Esercizio 5.11. Si completi l'esercizio dotando la classe dei metodi additional equals e clone.

(soluzione)

 

(Esercizio 5.13)

Si dia specifica, implementazione e certifica di una classe Set non modificabile per insiemi di oggetti non nulli della classe Queue definita in esercizio 5.

 

(Esercizio 5.14)

Si dia specifica, implementazione e certifica di una classe Set modificabile per insiemi di valori di tipi int. Si completi l'esercizio dotando la classe degli additionals toString, equals e clone.

(soluzione parziale)

 

(Esercizio 5.15)

Si definisca la classe Fun delle funzioni D in C, per arbitrari tipi D e C. Si equipaggi la classe con le operazioni:

I valori Fun sono modificabili ma solo estendendo il dominio, e un generico Fun ha la forma seguente: {(xi, f(xi)=yi) |0<=i<n} per funzioni definite su n>=0 punti diversi. Si risponda alle seguenti domande:

(soluzione parziale)

 

(Esercizio 5.16)

(a) Si definisca un metodo stand_alone che calcoli la composizione funzionale di funzioni definite in accordo alla classe fun.

(b) Si utilizzi tale metodo in un metodo main che provveda a: