Esame Laboratorio di Programmazione - Settembre 2006

Un piano è una sequenza di azioni. Per quello che riguarda questo compito, una azione è caratterizzata soltanto da un nome, dal tempo necessario per la sua esecuzione, e dalle sue precondizioni.

Esistono due tipi di precondizioni. Le precondizioni semplici sono caratterizzate solo da un nome (una stringa). Le precondizioni complesse sono invece caratterizzate dal loro nome e da un piano che le rende vere. In altre parole, per ognuna di queste precondizioni complesse viene fornito un piano che le rende soddisfatte.

Si realizzino le seguenti classi:

Piano
una sequenza di azioni
Azione
una azione è caratterizzata da un nome (una stringa), una durata (un reale) e da un insieme di precondizioni
Precondizione
una precondizione può essere semplice o composta
PrecondizioneSemplice
una precondizione semplice è data solo da un nome (una stringa)
PrecondizioneComposta
una precondizione composta è data da un nome (una stringa) e da un piano che rende vera la precondizione

Le classi devono essere incapsulate; specificare come commenti nel codice dove sono ammesse o no componenti nulle. Le classi devono avere:

Realizzare anche due metodi (in una classe a parte) che svolgono le seguenti funzioni: