Fondamenti di Informatica 1
Corso di Laurea in Ingegneria Informatica
Corso di Laurea in Ingegneria Automatica
A.A. 2002/03
Appello del 23/9/2003 - Compito B
Si vogliono gestire gli acquisti di uffici. Di un oggetto Ufficio
sono di interesse il nome dell'Ufficio (una stringa) e l'insieme dei
prodotti che l'Ufficio deve acquistare. Di ogni prodotto sono di
interesse le seguenti informazioni:
- il nome (una stringa);
- la fascia di prezzo accettabile per il prodotto (due reali, di cui uno
rappresenta il prezzo minimo e l'altro il prezzo massimo per il
prodotto).
Gli oggetti Ufficio supportano le seguenti funzionalità:
- crea: che, data una stringa n che rappresenta il nome
dell'Ufficio, crea un oggetto Ufficio con nome
n, che inizialmente non deve acquistare alcun prodotto;
- nome: che restituisce il nome dell'Ufficio;
- numeroProdotti; che restituisce il numero di prodotti che
l'Ufficio deve acquistare;
- prezzoMinimo; che dato il nome p di un prodotto,
restituisce il prezzo minimo per il prodotto p, se
l'Ufficio deve acquistare p; lancia una eccezione
altrimenti;
- prezzoMassimo; che dato il nome p di un prodotto,
restituisce il prezzo massimo per il prodotto p, se
l'Ufficio deve acquistare p; lancia una eccezione
altrimenti;
- daAcquistare: che, dato il nome p di un prodotto,
restituisce true se l'Ufficio deve acquistare il
prodotto p, false altrimenti;
- acquista: che, dati il nome p di un prodotto, e due
prezzi min e max, aggiunge il prodotto p con
prezzo minimo min e prezzo massimo max a quelli che
l'Ufficio deve acquistare, se l'Ufficio non deve
già acquistare un prodotto di nome p; se invece
l'Ufficio deve già acquistare un prodotto di nome
p, aggiorna il suo prezzo minimo a min e il suo prezzo
massimo a max;
- acquistato: che, dato il nome p di un prodotto, elimina
il prodotto p da quelli che l'Ufficio deve acquistare;
se il prodotto non è da acquistare non fa nulla;
- prodottiCompatibili: che, dato un prezzo s, restituisce
un array di stringhe contenente i nomi di tutti i prodotti che
l'Ufficio deve acquistare che sono compatibili con il prezzo
s. Si dice che un prodotto è compatibile con un prezzo
s se s è compreso tra il prezzo minimo e massimo
per quel prodotto.
Domanda 1. Scrivere una classe Java Ufficio
per rappresentare oggetti Ufficio.
Domanda 2. Realizzare un metodo statico
compatibili
, cliente della classe Ufficio
che,
dati
- un oggetto u della classe
Ufficio
,
- due reali s1 ed s2 che rappresentano due prezzi,
- il nome fout di un file,
scrive sul file fout, un prodotto per riga, le informazioni (nome,
prezzo minimo, prezzo massimo) relative ai prodotti che u deve
acquistare che sono compatibili sia con il prezzo s1 che con il prezzo
s2.
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 EsameB {
public static int m(int k) {
int r;
if (k <= 1)
r = 1;
else
r = 2 + m(k-2);
return r;
}
public static void main(String[] args) {
int a;
a = m(4);
System.out.println(a);
}
}