Fondamenti di Informatica I
Corso di Laurea in Ingegneria Informatica e Automatica
A.A. 2002/03
Esercitazione 13
Esercizio di esame
Si consideri la seguente specifica del tipo astratto Gruppo:
- TipoAstratto Gruppo
-
Domini
-
- Gruppo : dominio di interesse del tipo
- Componente : dominio dei componenti del gruppo
- Coppia(Gruppo,Gruppo) : dominio delle coppie
formate da due gruppi
-
- Funzioni
-
- crea()
Gruppo
- pre: nessuna
post: RESULT è un gruppo avente zero componenti
- numComponenti(Gruppo g)
Intero
- pre: nessuna
post: RESULT è il numero di componenti del
gruppo g
- aggiungiComponente(Gruppo g, Componente c)
Gruppo
- pre: c non è presente nel gruppo
post: RESULT è il gruppo ottenuto da g
aggiungendo il componente c
- estComponente(Gruppo g, Componente c)
Boolean
- pre: nessuna
post: RESULT è true se c è un componente
del gruppo g, false altrimenti
- ripartisci(Gruppo g)
Coppia(Gruppo,Gruppo)
- pre: nessuna
post: RESULT è una coppia formata da due gruppi
ottenuti da g ripartendo, in un modo qualsiasi, i componenti in
due sottogruppi le cui dimensioni differiscono al più di 1.
- FineTipoAstratto
-
Parte 1. Si scriva una classe Java Gruppo che realizzi il
tipo astratto Gruppo, considerando che per riferirsi al tipo astratto
Componente è necessario utilizzare la classe Componente
che si suppone già realizzata, della quale però non è nota la
definizione.
Parte 2. Realizzare un metodo statico cliente della classe Gruppo
dell'esercizio precedente, che dato un oggetto g di tipo Gruppo
ed una lista lis di nodi aventi la forma seguente:
public class Nodo {
public Componente info;
public Nodo next;
}
verifichi se tutti i componenti nella lista lis fanno parte di g.