Fondamenti di Informatica 1
Corso di Laurea in Ingegneria Informatica
Canale G-O, A.A. 2002/03
Esercitazione 8
Array e Matrici
Esercizio 8A
Si vuole realizzare una classe Lotto
, i cui oggetti mantengono
informazioni su una estrazione del lotto. Ogni estrazione è
caratterizzata da 5 numeri (interi) estratti su 6 ruote.
Della classe sono d'interesse le seguenti funzionalità:
- creazione di una estrazione del lotto: si generino casualmente i numeri
estratti utilizzando per la generazione di ciascun numero la seguente
espressione
(int) (Math.random() * 90) + 1
Si faccia in modo che tra i numeri estratti su una stessa ruota non vi
siano duplicati. Quindi, per ciascun numero generato, bisogna verificare
che non sia già stato estratto sulla stessa ruota, e nel caso lo
sia, ignorarlo e generarne un altro.
- verifica che l'array passato come argomento rappresenti un ambo, un
terno, una quaterna o una cinquina su almeno una ruota, e restituzione di
una stringa che rappresenti opportunamente il risultato (es.: se si
è realizzata una cinquina il metodo restituisce
"cinquina"
, se non si è realizzato nulla, il metodo
restituisce "nulla"
).
- verifica che l'array (di lunghezza cinque) passato come parametro
rappresenti una vincita al superEnalotto. I 6 numeri vincenti tra i
quali devono comparire i numeri giocati sono dati dal primo numero
estratto da ciascuna ruota che sia diverso da tutti i numeri vincenti
già presi dalle ruote precedenti.
Si realizzi inoltre un cliente della classe Lotto
che
rappresenti la giocata di alcuni numeri e verifichi la vincita.
Soluzione
Esercizio 8B (opzionale, eventualmente da svolgere a casa)
Si realizzi una classe Televisore
per gestire informazioni
relative ai televisori. Ciascun oggetto della classe rappresenta un televisore,
e per ciascun televisore, le informazioni rilevanti riguardano il numero di
canali di cui dispone (ad esempio dal numero 0 al numero 49), e le stazioni (ad
esempio, "Rai Tre"
) su cui i vari canali vengono sintonizzati.
Della classe sono d'interesse le seguenti funzionalità:
- dato un intero c, creazione di un oggetto di tipo
Televisore
con c canali, che non sono sintonizzati
su alcuna stazione;
- quantiCanali, che restituisce il numero di canali di cui dispone
un televisore;
- sintonizza, che dati una stazione s ed un canale
c, sintonizzi il canale c del televisore sulla stazione
s;
- qualeStazione, che dato un intero c, restituisca
la stazione su cui è sintonizzato il canale c del
televisore se esiste, e restituisca la stringa
"stazione
inesistente"
altrimenti.
Realizzare una classe StazioniSintonizzate
, che includa un
metodo statico quanteStazioni
che, preso in ingresso un array di
televisori e una stazione, restituisca il numero di televisori che sono
sintonizzati su quella stazione per un qualche canale.
Realizzare una classe cliente delle classi precedenti avente un metodo
main
che
- legga da tastiera il numero di canali di 4 di televisori, crei i relativi
oggetti e sintonizzi i canali su stazioni lette da tastiera;
- legga un'altra stazione da tastiera e stampi il numero di televisori che
sono sintonizzati su quella stazione per un qualche canale.
Soluzione