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 C
Si vuole tenere traccia della scaletta di brani musicali richiesti ad una
trasmissione radiofonica. Ogni Scaletta è relativa ad una
puntata (identificata da un codice, una stringa) ed è costituita da un
insieme ordinato di brani. Di ogni brano sono di interesse le seguenti
informazioni:
- il titolo del brano (una stringa);
- la dedica (una stringa).
Si noti che uno stesso brano può comparire più volte in una
stessa Scaletta.
Gli oggetti Scaletta supportano le seguenti funzionalità:
- crea: che, data una stringa p che rappresenta il
codice di una puntata di trasmissione, crea un oggetto Scaletta
per la puntata p che inizialmente non ha alcun brano
programmato;
- puntata: che restituisce il codice della puntata (non richiesto
all'esame);
- aggiungiBrano: che, dati il titolo t di un brano e la
dedica d, inserisce in coda alla lista di brani un nuovo brano
dal titolo t con dedica d;
- estraiBrano: che elimina il brano in testa alla scaletta; se la
scaletta è vuota lancia un'eccezione;
- numBrani: che restituisce il numero di brani nella scaletta;
- titoloBrano: che, dato un intero i che rappresenta il
numero d'ordine di un brano, restituisce il titolo del brano con quel
numero d'ordine; per numero d'ordine di un brano si intende il numero
di brani che lo precedono nella scaletta (ad esempio, i=0
rappresenta il brano in testa alla scaletta); se l'intero i non
rappresenta un numero d'ordine valido lancia un'eccezione;
- dedicaBrano: che, dato un intero i che rappresenta il
numero d'ordine di un brano, restituisce la dedica del brano; se l'intero
i non rappresenta un numero d'ordine valido lancia un'eccezione;
- numBrani: che, dato il titolo t di un brano,
restituisce il numero di volte che il brano t compare nella
scaletta;
- posizioniBrano: che, dato il titolo t di un brano,
restituisce un array di interi contenente il numero d'ordine di ciascuna
occorrenza del brano t nella scaletta.
Domanda 1. Scrivere una classe Java
Scaletta
per rappresentare oggetti Scaletta.
Soluzione:
rappresentazione
degli oggetti,
scheletro della classe,
classe Scaletta
Domanda 2. Realizzare un metodo statico
dedicheBrano
cliente della classe Scaletta
che,
dati un oggetto s istanza della classe Scaletta
, il
titolo t di un brano, ed il nome f di un file, scrive sul
file f tutte le dediche per il brano t in s, una
dedica 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 EsameC {
public static double gamma(double x) {
x = x / 3;
return x;
}
public static String delta(String s) {
String ris = s + s;
return ris;
}
public static void main(String[] args) {
double z = 12.0;
double w = gamma(z);
System.out.println(z + ", " + w);
String p = new String("pippo");
String pp = null;
pp = delta(p);
System.out.println(pp);
}
}