A partire dal 5 Ottobre, e fino alla fine delle lezioni, ogni mercoledì verranno assegnati degli homework, da svolgere singolarmente e da consegnare via posta elettronica all'indirizzo luca.moscardelli@unich.it mettendo nell'oggetto del messaggio la seguente stringa:
[java] Cognome Nome Homework id
dove Cognome e Nome e sono il cognome ed il nome dello studente che consegna, ed id è l'identificativo dell'homework.
Il file consegnato deve essere allegato all'email e deve avere come nome la stessa stringa [java] Cognome Nome Homework id
Il file va consegnato in formato di testo semplice; .txt e .java sono estensioni accettabili.
Ad esempio, un possibile file per lo studente Mario Rossi e il primo homework è
[java] Rossi Mario Homework 1.java
ATTENZIONE: il non attenersi in modo corretto alla sopra descritta procedura di consegna comporterà una penalizzazione nella valutazione dell'homework stesso.
La consegna va effettuata entro il martedì successivo all'assegnazione dell'esercizio.
Gli homework non sono obbligatori. Tuttavia, chi li consegna tutti tranne al più due avrà un bonus aggiuntivo sul voto finale d'esame variabile da 0 a 2 punti, a seconda della qualità e del numero dei lavori consegnati.
Di seguito la lista degli homework con la data di assegnamento. Siete invitati a visualizzare questa pagina ogni martedì.
- 5 Ottobre 2016, id 1
Scrivere un programma in Java che chiede all'utente di immettere un intero n finché l'utente non immette un numero positivo, e quindi stampa a video un triangolo isoscele di altezza n formato da asterischi.
Ad esempio, se n=4, si deve stampare
*
***
*****
*******
- 12 Ottobre 2016, id 2
Scrivere un metodo static void stampaMatrice (double[][] m) in Java che, preso come parametro un array bidimensionale di double (non necessariamente con tutte le righe della stessa lunghezza), stampa a video una sua rappresentazione. Attenzione: il metodo deve gestire i casi in cui la matrice o gli array riga valgono null, e i casi in cui la lunghezza degli array è 0.
- 19 Ottobre 2016, id 3
Scrivere un metodo
static int penultimoMassimo (int[] a)
in Java, che preso come parametro un array di numeri interi, restituisce il secondo elemento più grande tra i valori contenuti dell'array (si noti che se l'array ha due o più elementi di valore massimo, deve essere restituto uno di loro). Se l'array contiene meno di 2 elementi, il metodo deve restituire 0.
Ad esempio, se l'array a è {1,8,4,2,4,7} il metodo deve restituire 7. Se l'array a è {5,5,3} deve restituire 5.
- 26 Ottobre 2016, id 4
Scrivere un metodo ricorsivo (che non faccia uso di comandi iterativi)
static int nCifre (int n)
in Java, che preso come parametro un intero n non negativo, restituisce il numero delle cifre di n. Se n è negativo, viene restituito 0.
Aiuto: si noti che il caso base è quando n è minore di 10, ed in questo caso il numero delle cifre è 1.
- 2 Novembre 2016, id 5
Scrivere un metodo
static int conteggio (int [] a, int k)
in Java, che preso come parametro un array di numeri interi a ed un intero k, restituisce il numero di elementi dell'array a che occorrono almeno k volte Se l'array non esiste, il metodo deve restituire 0.
Ad esempio, se l'array a è {1, 8, 4, 2, 4, 7, 1, 4} e k=2, il metodo deve restituire 2 poiché i valori 1 e 4 compaiono almeno 2 volte.
- 9 Novembre 2016, id 6
Aggiungere alla MainClass del file scaricabile qui un metodo
static double perimetro (Poligono p)
in Java, che preso come parametro un Poligono p (Poligono è un tipo di dato riferimento definito sempre nel file MainClass.java, in cui i vertici di un poligono sono memorizzati in modo consecutivo in un array di Punto: ad esempio, un triangolo avrà come variabile di istanza vertici un array di Punto di lunghezza 3) restituisce il perimetro del poligono p. Se p vale null, o uno dei suoi vertici vale null, il metodo deve restituire 0.
- 16 Novembre 2016, id 7
Aggiungere alla classe Punto del package piano_cartesiano del progetto visto a laboratorio e scaricabile qui un metodo di istanza
public boolean appartiene (Segmento s)
in Java, che preso come parametro un segmento s, restituisce true se e solo se il punto su cui è invocato ppartiene al segmento s.
Si noti che un punto appartiene ad un segmento se appartiene alla retta passante per gli estremi del segmento e se le sue coordinate rientrano nel range definito dagli estremi del segmento stesso.
Si possono sfruttare tutti i metodi già scritto a laboratorio e presenti nel file scaricato.
Si consegni in un file di testo SOLO il metodo richiesto.
- 23 Novembre 2016, id 8
Scrivere un metodo
static void eliminaDoppioni (ArrayList a)
in Java, che preso come parametro un ArrayList a di Integer, lo modifica rimuovendo tutti gli elementi doppioni, facendo in modo quindi che in a alla fine dell'esecuzione ogni intero contenuto occorra esattamente una volta.
Ad esempio, se l'ArrayList a è [1, 8, 4, 2, 4, 7, 1, 4], il metodo deve modificarlo facendolo diventare [1, 8, 4, 2, 7].
- 30 Novembre 2016, id 9 (ultimo homework)
Aggiungere alla classe InsiemeLimitato del progetto visto a laboratorio e scaricabile qui un metodo di istanza
public void remove (int e)
in Java, che preso come parametro un intero e, lo rimuove dall'insieme limitato (qualora sia presente).
Se l'elemento non è presente, il metodo non fa nulla.
Si possono sfruttare tutti i metodi già scritto a laboratorio e presenti nel file scaricato.
Si consegni in un file di testo SOLO il metodo richiesto.