Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
18 marzo 2021
1 Istruzioni di consegna
Salvare ogni esercizio in un le di testo .java (1 per esercizio!) che abbia
il nome indicato nell'esercizio. Si noti che "public class" avrà come nome
lo stesso nome del le, tranne il .java. ES: Ricerca.java avrà public class
Ricerca.
Allo scadere del tempo, archiviare tutti i le .java in un archivio (se-
lezionate tutti i le, tasto destro, Aggiungi ad un archivio) chiamato
"nomeCognome" con i vostri nomi e cognomi. ES: andreaBozzi
Inviare l'archivio a me per posta o su discord non oltre le 17.30: ciò che
arriva dopo non sarà valutato.
Il Problema va risolto a casa nell'arco della prossima settimana. Le rispo-
ste vanno inviate per mail chiudendo in un archivio "nomeCognomePro-
blema" con i vostri nomi e cognomi. ES: andreaBozziProblema.
Il Problema va consegnato entro le 23.59 del 25 Marzo 2021.
2 Esercizi
2.1 I cicli For
2.2 Foreach
Scrivere una classe RicercaEach.java che faccia quanto fatto nell'esercizio pre-
cedente ma utilizzando il costrutto for-each.
1
2.3 Matrici, che amore!
Scrivere una classe MatriceNM che modichi il codice sottostante in modo tale
che l'utente possa decidere quali valori inserire in ogni cella (non si deve più
inizializzare a 1). Aggiungere istruzioni che permettano di stampare i valori
nella matrice, formattandoli in modo che la rappresentino in modo adeguato
come in esempio.
Figura 2: Esempio di esecuzione per una matrice 2x3 per esercizio 1.3
2
2.5 Moltiplica il random!
Scrivere una classe Pitagora che, letti due valori numerici rappresentanti i catati,
calcoli il valore dell'ipotenusa.
Scrivere una classe Palindroma.java che prende in input una stringa e che stam-
pa a schermo se essa sia palindroma o meno. Possibile usare il owchart della
lezione 0 per trarre uno spunto. Si noti che una stringa è palindroma se può
essere letta in entrambe le direzioni, as esempio "osso" o "aia".
2.9 Disegna!
3
(a) Modalità 1 (b) Modalità 2 (c) Modalità 3
3 Problema
Creare una variante del gioco "Battaglia Navale". Il gioco è per un singolo
giocatore che gioca contro il computer. All'avvio del gioco vengono generate due
griglie 10x10 che vengono riempite casualmente con 0 o 1. 0 indica casella vuota
mentre 1 indica la presenza di una nave. Un giocatore non può avere più di 20
navi! (Può però averne meno). Il giocatore viene informato sul numero di navi
sue e avversarie. A turno giocatore e computer sparano un colpo scegliendo due
coordinate. Se scelgono una casella con un 1, la trasformano in uno 0, altrimenti
non accade nulla. Il computer sceglie due valori casualmente. Il giocatore viene
sempre informato su dove ha sparato e se ha colpito, così come viene informato
dove il computer ha sparato e se ha colpito e viene informato anche sul numero
di navi sue e del computer rimanenti all'inizio di ogni turno. Se il giocatore non
ha navi (la sua griglia contiene solo 0) all'inizio del proprio turno, il programma
termina e viene stampato "Hai perso". Se invece a non avere più navi all'inzio
del turno del giocatore è il computer, il gioco termina e viene stampato "Hai
vinto."
Creare un diagramma di usso che rappresenti l'esecuzione (potete essere
anche informali, anche se la formalità è ben gradita).
Scrivere una descrizione a parole su come si pensa di implementare il
programma.
Provare a scrivere il programma.