Fondamenti di Informatica II - Secondo Modulo
A.A. 1999/00 - Esercizio d'esame - prima parte

Problema 1   Si consideri la seguente specifica del tipo astratto Deposito:

TipoAstratto Deposito
Sorte
Dep (sorta per il dominio di interesse)
Funzioni
FineTipoAstratto

Domanda 1   Realizzare il tipo astratto Deposito mediante una classe C++ Deposito in modo da rendere le operazioni del tipo astratto il più efficienti possibile. Per riferirsi al tipo astratto Auto è necessario utilizzare la classe già definita Auto, della quale è nota solo la funzione Targa(): la chiamata a.Targa() restituisce la targa associata all'auto a. Per rappresentare il tipo astratto Targa si utilizzi una stringa (cioè un array char* che termina con il carattere '\0'). Per verificare l'uguaglianza tra stringhe si utilizzi la funzione predefinita int strcmp(char* st1, char* st2) che restituisce 0, se st1 è uguale a st2, e un intero diverso da 0, altrimenti.

Domanda 2  Si discuta brevemente la complessità di ciascuna delle funzioni pubbliche della classe Deposito.