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 B
Si vuole tenere traccia delle visite da effettuare presso uno studio medico.
Ogni ListaVisite è associata al nominativo di un medico (una
stringa) ed è costituita da un insieme ordinato di visite.
Di ogni visita sono di interesse le seguenti informazioni:
- il nome del paziente (una stringa);
- il tipo di visita (una stringa).
Si noti che uno stesso paziente può comparire più volte in una
stessa ListaVisite.
Gli oggetti ListaVisite supportano le seguenti funzionalità:
- crea: che data una stringa m che rappresenta il
nominativo di un medico crea un oggetto ListaVisite associato ad
m che inizialmente non ha alcuna visita associata;
- medico: che restituisce il nominativo del medico (non richiesto
all'esame);
- aggiungiVisita: che dati il nome p di un paziente e il
tipo t di una visita, inserisce in coda alla lista di visite una
nuova visita di tipo t per il paziente p;
- estraiVisita: che elimina la visita in testa alla lista; se la
lista di visite è vuota lancia un'eccezione;
- numVisite: che restituisce il numero di visite;
- pazienteVisita: che dato un intero i che rappresenta il
numero d'ordine di una visita, restituisce il nome del paziente per
quella visita; per numero d'ordine di una visita si intende il numero di
visite che la precedono nella lista (ad esempio, i=0 rappresenta
il numero d'ordine della visita in testa alla lista); se l'intero
i non rappresenta un numero d'ordine valido lancia un'eccezione;
- tipoVisita: che dato un intero i che rappresenta il
numero d'ordine di una visita, restituisce il tipo della visita; se
l'intero i non rappresenta un numero d'ordine valido lancia
un'eccezione;
- numVisitePaziente: che dato il nome p di un paziente,
restituisce il numero di visite per il paziente p;
- visitePaziente: che dato il nome p di un paziente,
restituisce un array di interi contenente il numero d'ordine di ciascuna
delle visite del paziente p.
Domanda 1. Scrivere una classe Java
ListaVisite
per rappresentare oggetti ListaVisite.
Soluzione:
rappresentazione
degli oggetti,
scheletro della classe,
classe ListaVisite
Domanda 2. Realizzare un metodo statico
tipoVisitePaziente
cliente della classe ListaVisite
che, dati un oggetto v istanza della classe ListaVisite
,
il nome p di un paziente, ed il nome f di un file, scrive sul
file f il tipo di tutte le visite del paziente p in
v, una visita per riga.
Soluzione
Domanda 3. Spiegare brevemente (circa una pagina) il
meccanismo del passaggio dei parametri e della restituzione del valore di
ritorno in Java. Illustrare inoltre, facendo uso di diagrammi della memoria,
il meccanismo del passaggio dei parametri nel seguente esempio:
public class EsameB {
public static int alfa(int k) {
k = k * 2;
return k;
}
public static void beta(StringBuffer sb) {
sb.append(" e pluto");
}
public static void main(String[] args) {
int m = 3;
int n = alfa(m);
System.out.println(m + ", " + n);
StringBuffer pp = new StringBuffer("pippo");
beta(pp);
System.out.println(pp);
}
}