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 D

Si vuole tenere traccia di liste della spesa. Ogni ListaSpesa è associata ad un nominativo di persona (una stringa) ed è caratterizzata da un insieme di prodotti. Di ogni prodotto in una ListaSpesa sono di interesse le seguenti informazioni: Gli oggetti ListaSpesa supportano le seguenti funzionalità:

Domanda 1. Scrivere una classe Java ListaSpesa per rappresentare oggetti ListaSpesa.

Soluzione: rappresentazione degli oggetti, scheletro della classe, classe ListaSpesa

Domanda 2. Realizzare un metodo statico calcolaCosti cliente della classe ListaSpesa che, dati un oggetto lis istanza della classe ListaSpesa ed il nome f di un file, scrive sul file f il nome ed il costo complessivo di tutti i prodotti di lis, un prodotto per riga. Il costo complessivo di un prodotto si calcola moltiplicando il costo unitario per la quantità.

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 EsameD {
  public static int g(int k) {
    if (k == 0)
      return 1;
    else
      return 2 * g(k-1);
  }

  public static void main(String[] args) {
    int n;
    n = g(3);
    System.out.println(n);
  }
}