Fondamenti di Informatica 1
Corso di Laurea in Ingegneria Informatica
Corso di Laurea in Ingegneria Automatica
A.A. 2002/03
Appello del 25/3/2003 - Compito A
Per tenere traccia di attività da svolgere si fa uso di oggetti
ToDo. Ogni oggetto ToDo si riferisce ad un argomento (una
stringa) ed è caratterizzato da un insieme di attività associate.
Di ogni attività associata ad un oggetto ToDo sono di interesse
le seguenti informazioni:
- il nome dell'attività (una stringa);
- la durata in ore (un intero).
Gli oggetti ToDo supportano le seguenti funzionalità:
- crea: che, data una stringa s che rappresenta un
argomento, crea un oggetto ToDo con argomento s
che inizialmente non ha alcuna attività associata;
- argomento: che restituisce l'argomento (non richiesto
all'esame);
- numAttivita: che restituisce il numero di attività
associate;
- presente: che, dato il nome n di un'attività,
restituisce true se l'attività di nome n
è presente, false altrimenti;
- durata: che, dato il nome n di un'attività,
restituisce la sua durata, se l'attività di nome n
è presente; altrimenti lancia un'eccezione;
- aggiornaDurata: che, dati un nome n ed una durata
t, aggiorna l'attività di nome n ponendo la sua
durata pari a t, se l'attività di nome n
è presente; altrimenti lancia un'eccezione;
- aggiungiNuovaAttivita: che, dati un nome n ed una
durata t, aggiunge un'attività di nome n e
durata t alle attività associate, se non è
già presente un'attività di nome n; altrimenti
lancia un'eccezione;
- eliminaAttivita: che, dato il nome n di
un'attività, elimina l'attività di nome n se essa
è presente; altrimenti non fa nulla;
- tutteLeAttivita: che restituisce un array di stringhe contenente
i nomi di tutte le attività.
Domanda 1. Scrivere una classe Java ToDo
per rappresentare oggetti ToDo.
Soluzione:
rappresentazione
degli oggetti,
scheletro della classe,
classe ToDo
Domanda 2. Realizzare un metodo statico
scriviAttivita
cliente della classe ToDo
che, dati un
oggetto d istanza della classe ToDo
ed il nome f
di un file, scrive sul file f il nome e la durata di tutte le
attività di d, una attività per riga.
Soluzione
Domanda 3. Spiegare brevemente (circa una pagina) la
nozione di record di attivazione e la gestione della pila dei record di
attivazione a fronte dell'attivazione di metodi. Si illustri l'evoluzione
della pila dei record di attivazione a fronte dell'esecuzione del seguente
programma:
public class EsameA {
public static int f(int i) {
if (i == 0)
return 0;
else
return i + f(i-1);
}
public static void main(String[] args) {
int x;
x = f(3);
System.out.println(x);
}
}