ISTRUZIONI E TESTI
-
Si svolgano gli esercizi proposti in una nuova directory/progetto,
ricordandosi di importare una classe adeguata per l'I/O da tastiera.
-
Si verifichi di aver installato correttamente il sistema Java,
compilando ed eseguendo (eventualmente con
javac e
java)
un semplice programma,
per esempio Benvenuto.
[1]
Si considerino i tipi di dato astratti modificabili
ModString,
utilizzato per rappresentare stringhe mutabili, e
ModStringCollection,
utilizzato per rappresentare una collezione mutabile di oggetti di tipo
ModString.
Il tipo di dati ModString ha, fra gli altri, i seguenti metodi
-
public int size(),
che restituisce la lunghezza della stringa;
-
public void update(char c, int num),
che inserisce il carattere c nella
posizione num, sovrascrivendo
il carattere precedentemente in quella posizione;
-
public void remove(int num),
che elimina il carattere in posizione num,
eventualmente riposizionando in maniera adeguata i caratteri rimanenti.
Il tipo di dati ModStringCollection ha invece, fra gli altri, i seguenti metodi
-
public int occurrences(ModString str),
che restituisce il numero di occorrenze della stringa str nella collezione;
-
public int size(),
che restituisce la cardinalità della collezione (il numero delle stringhe presenti);
-
public void insert(ModString str),
che inserisce la stringa str nella collezione;
-
public int remove(ModString str, int num),
che elimina dalla collezione al massimo num occorrenze
della stringa str (e tutte le occorrenze se
num = 0), e restituisce il numero degli elementi
effettivamente rimossi;
-
public String[ ] getUnique(),
che restituisce gli elementi della collezione eliminando i duplicati.
Si completi la specifica dei due tipi di dato astratti, includendo una overview con la descrizione
di un'istanza tipica e fornendo la specifica completa dei metodi, comprese le eventuali eccezioni lanciate.
Soluzione: le classi ModString e
ModStringCollection.
[3]
Si dimostri la correttezza dell'implementazione proposta.
|