B - mauriziomancini.org

Transcript

B - mauriziomancini.org
1
2
Esercizio 1
Una chat può essere vista come una sequenza ordinata di messaggi di testo inseriti dall'utente usando la tastiera.
Scrivere una classe Chat che permette di immaganizzare una sequenza ordinata di 10 messaggi al massimo, dove ogni
messaggio è una stringa di testo di qualsiasi lunghezza, contenente qualsiasi carattere, simbolo, punteggiatura o spazio.
La classe deve in qualche modo mantenere aggiornate le informazioni necessarie per conoscere quanti messaggi sono
stati inseriti nella chat. Una nuova chat ha sempre zero messaggi.
Il solo modo per aggiungere un nuovo messaggio alla chat o per recuperare un messaggio precedentemente inserito è
tramite due metodi:
- il primo prende una stringa di testo e la aggiunge, se ancora c'è spazio, alla sequenza di messaggi della chat,
restituendo in questo caso true; se invece non c'è più spazio nella chat non lo aggiunge e restituisce false;
- il secondo prende un indice intero positivo e restituisce, se esiste, il messaggio che si trova in quella posizione nella
sequenza di messaggi della chat, altrimenti se il messaggio in questione non esiste (ad esempio, sono stati inseriti finora
5 messaggi e viene richiesto il messaggio numero 7) restituisce una stringa vuota;
Scrivere, in un file separato rispetto a quello della classe Chat, un main che:
1. istanzia una nuova chat
2. chiede all'utente di inserire un messaggio di testo (vedi *) e una volta inserito lo aggiunge alla chat, se c'è ancora
spazio
3. se l'inserimento al punto precedente è andato a buon fine torna al punto 2
4. se l'inserimento al punto 2 non è andato a buon fine:
4.1 viene visualizzato il testo: "Contenuto della chat:"
4.2 vengono visualizzati di seguito tutti i messaggi contenuti nella chat
(*) per leggere un messaggio di testo usare il metodo nextLine() della classe Scanner
Esercizio 2
Un sub ha sempre con sé, tra le varie attrezzature necessarie per l'immersione, un profondimetro per controllare a che
profondità si trova in ogni momento. Il profondimetro viene regolato dal sub prima di cominciare l'immersione
inserendo due valori di profondità: la soglia 1 è una soglia di attenzione e la 2, sempre maggiore della 1, è una soglia di
allarme.
Il funzionamento del profondimetro è semplice: se la profondità attuale del sub non supera nessuna soglia lo schermo
profondimetro è di colore verde; se la profondità del sub scende sotto la soglia 1 lo schermo è di colore arancione; se la
profondità scende ulteriormente al di sotto anche della soglia 1 lo schermo diventa rosso.
Scrivere una classe Profondimetro che modelli opportunamente il comportamento del profondimetro descritto sopra.
Per rappresentare il colore dello schermo del profondimetro scegliere la rappresentazione che si ritiene più opportuna
spiegando però il significato della rappresentazione che è stata scelta usando dei commenti nel file sorgente.
Un nuovo Profondimetro ha sempre come prima soglia 20 metri e come seconda soglia 30 metri.
Prevedere dei metodi per:
- aggiornare le soglie del profondimetro: ma attenzione, le soglie vengono aggiornate solo se vengono forniti due valori
interi e positivi, diversi da zero, e tali che la soglia 1 sia sempre minore della soglia 2, altrimenti non avviene nessun
aggiornamento
- dato un valore di profondità attuale come parametro del metodo, restituire il colore dello schermo del profondimetro in
formato testuale ("verde", "arancione" o "rosso")
3
- Creare sul desktop una cartella chiamata “FDI - Esame di <Nome> <Cognome>”
- Copiare nella cartella i file *.java contenenti lo svolgimento dell’esame
- In alternativa copiare nella cartella l’intero workspace Eclipse usato per svolgere l’esame
ATTENZIONE: questo foglio va riconsegnato al termine dello scritto prima di lasciare l’aula (anche in caso di rinuncia)
ATTENZIONE: questo foglio va riconsegnato al termine dello scritto prima di lasciare l’aula (anche in caso di rinuncia)
Fondamenti di Informatica
Esame del 21-6-2016
Nome: ....................................
Cognome: ..............................
Matricola: ..............................