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 istallato correttamente il sistema Java,
compilando ed eseguendo (eventualmente con
javac e
java)
un semplice programma,
per esempio Benvenuto.
[1]
Si considerino i tipi di dati astratto modificabile
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 occurrences(char c),
che restituisce il numero di occorrenze del carattere c nella stringa;
-
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,
shiftando 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 restituisce il numero degli elementi
effettivamente rimossi;
-
public Vector<String> getUnique(),
che restituisce gli elementi della collezione eliminando i duplicati.
Si completi la specifica dei due tipi di dati 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.
|