Diploma Universitario di Ingegneria Informatica
Esame di Fondamenti di Informatica II - secondo modulo
A.A. 1999/2000 - Appello del 19 dicembre 2000
Problema 1 Si consideri la seguente specifica del tipo
astratto Officina:
- TipoAstratto Officina
- Sorte Off (sorta per il dominio di interesse)
- Funzioni
- Crea : (PartitaIva) --> Off
precondizioni e postcondizioni per crea(p) = o
pre: nessuna
post: o è
un'officina avente p come partita iva
e con nessun autoveicolo
- PartitaIva : (Off) --> PartitaIva
precondizione e postcondizioni per PartitaIva(o) = p
pre: nessuna
post: p è la partita iva dell'officina
o
- Arriva : (Off, Auto) --> Off
precondizione e postcondizioni per
Arriva(o,a) = oo
pre: nessuna
post: oo è l'officina ottenuta
da o aggiungendo l'auto a e attribuendo a tale
auto lo status di "inRiparazione"
- Parte : (Off, Auto) --> Off
precondizioni e postcondizioni per Parte(o,a) = oo
pre: a è
presente nell'officina o con status "pronta"
post: oo è l'officina ottenuta da
o eliminando l'auto a
- InRiparazione : (Off, Auto) --> Boolean
precondizione e postcondizioni per
InRiparazione(o,a) = b
pre: nessuna
post: b = true se
a è presente nell'officina o ed
ha lo status "inRiparazione"; b=false altrimenti
- Pronta : (Off, Auto) --> Boolean
precondizione e postcondizioni per
Pronta(o,a) = b
pre: nessuna
post: b = true se
a è presente nell'officina o ed
ha lo status "pronta"; b=false altrimenti
- Approntata(Off, Auto) --> Off
precondizioni e postcondizioni per
Approntata(o,a) = oo
pre: a è
presente nell'officina o con status "inRiparazione"
post: oo è l'officina ottenuta da
o cambiando lo status dell'auto a in "pronta"
- FineTipoAstratto
Scrivere una classe C++ Officina (file .h e file
.cpp) che realizza il tipo astratto Officina facendo uso di
una tavola hash, definita in modo da realizzare tutte le operazione del
tipo astratto in tempo costante (O(1)) nel caso atteso. Si consideri
che per riferirsi al tipo astratto Auto è necessario utilizzare
la classe Auto che si suppone già realizzata, della quale
però non è nota la definizione. Inoltre si assuma che la partita
iva sia rappresentata da una stringa.
Problema 2 Si modifichi la definizione della classe
Officina realizzata per il Problema 1 avendo cura che il fattore
di carico fc della tavola hash sia sempre compreso tra
0.25 e 0.75.