A partire dal 14 Ottobre, e fino alla fine delle lezioni, ogni martedì verranno assegnati degli homework, da svolgere singolarmente e consegnare via posta elettronica all'indirizzo luca.moscardelli@unich.it mettendo nell'oggetto del messaggio la seguente stringa:
[jmm] Cognome Nome Homework n° 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 [jmm] Cognome Nome Homework n° id
Il file va consegnato in formato di testo semplice; .txt e .java sono estensioni accettabili.
ATTENZIONE: a partire dall'homework con id 3, 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 lunedì 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à dei lavori consegnati.
Di seguito la lista degli homework con la data di assegnamento. Siete invitati a visualizzare questa pagina ogni martedì.
- 14 Ottobre 2014, 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 crea un array di numeri interi avente lunghezza n. L'array deve essere riempito con i primi n quadrati pefetti, a partire da 0 (0,1,4,9,...)
Infine, il programma deve stampare l'array così ottenuto in ordine inverso (dall'ultima alla prima posizione).
- 21 Ottobre 2014, id 2
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 la seguente figura (che richiama un triangolo), composta da n righe (nell'esempio, n=6):
+
+-+
+---+
+-----+
+-------+
+---------+
- 28 Ottobre 2014, id 3
Scrivere un metodo boolean isOrdered (int[] a) in Java-- che preso come parametro un array di numeri interi restituisce true se esso è ordinato in modo non decrescente, falso altrimenti. Se l'array è vuoto o a vale null, il metodo deve restituire true.
- 4 Novembre 2014, id 4
Scrivere un metodo
static int secondoMinimo (int[] a)
in Java, che preso come parametro un array di numeri interi, restituisce il valore più piccolo tra i valori contenuti dell'array che siano superiori al minimo valore dell'array. Se tale valore non è presente, il metodo deve restituire 0.
Ad esempio, se l'array a è {1,8,4,2,4,8} il metodo deve restituire 2. Se l'array a è {5,5,5} deve restituire 0, in quanto nessun valore è superiore al minimo valore dell'array.
- 11 Novembre 2014, id 5
Scrivere un metodo
static int[] sommaMassima (int[] a)
in Java, che preso come parametro un array di numeri interi, restituisce un sottoarray di a (di elementi consecutivi) avente somma massima in a.
Ad esempio, se a = {-10, 35, -20, 50, -30, -14, 2, 19} il metodo deve restituire il sottoarray {35, -20, 50} che è quello di somma massima.
- 18 Novembre 2014, id 6
Scrivere un metodo ricorsivo
static boolean isOrdered (int[] a, int inizio, int fine)
in Java, che preso come parametro un array di numeri interi restituisce true se il suo sottoarray che inizia alla posizione inizio e termina alla posizione fine è ordinato in modo non decrescente, false altrimenti.
Il metodo deve sfruttare la tecnica divide et impera e non deve far uso di comandi iteraivi.
Se la porzione di array su cui ci si concentra è vuota o a vale null, il metodo deve restituire true.
- 25 Novembre 2014, id 7
Si consideri la struttura dati
class Elemento {
int valore;
int molteplicita;
}
Scrivere un metodo
static Elemento[] homework7 (int[] a)
in Java, che preso come parametro un array di numeri interi, restituisce un array di Elemento che deve avere lunghezza uguale al numero di elementi distinti presenti in a, e per ogni elemento n presente in a x volte, deve contenere un Elemento il cui valore sia n e la cui molteplicita sia x.
Se a vale null, il metodo deve restituire null.
Ad esempio, se a = {1, 5, 2, 5, 2, 5, 2, 1, 6} il metodo deve restituire un array contenente 4 oggetti di tipo Elemento (poiché ci sono 4 elementi distinti in a), con le seguenti coppie di valore e molteplicità: valore 1 con moltepliciità 2, valore 2 con molteplicità 3, valore 5 con molteplicità 3, valore 6 con molteplcità 1.ù
- 2 Dicembe 2014, id 8
Sfruttando opportunamente il codice visto a laboratorio per le frazioni e le espressioni, aggiungere alla MainClass (scaricabile qui) scritta a laboratorio un metodo
static boolean equivalenteExp (Exp e1, Exp e2)
che prese in input due espressioni restituisce true se e solo se esse sono equivalenti, cioè se e solo se la loro valutazione porta a due frazioni equivalenti.
- 9 Dicembe 2014, id 9 (ultimo homework)
Sfruttando opportunamente il codice visto a laboratorio per le lste, aggiungere alla MainClass scritta a laboratorio (scaricabile qui) un metodo
static void aggiungiOrdinato(Lista l, int valore)
che presa in input una lista l ed un intero valore, assumendo che la lista l sia ordinata in modo non decrescente, aggiunge valore alla lista in modo che la lista continui ad essere ordinata in modo non decrescente.