Home Risorse Docenti News Documenti Amministrazione del CdS Iscriversi Presentazione del corso Guida all'immatricolazione Studiare Piano di Studio Regolamento didattico Calendario didattico Orario delle lezioni Appelli d'esame Insegnamenti Laurearsi Sessioni di laurea Modulistica tesi e commissioni di laurea ... e dopo la laurea? Il mondo del lavoro Laurea magistrale a Pescara Laurea magistrale in altre sedi

Insegnamento di Programmazione I + Lab. Programmazione I Home Docenti Appuntamenti news Documenti

Homework A.A. 2015/2016




A partire dal 6 Ottobre, e fino alla fine delle lezioni, ogni martedì 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:
[jmm] 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 [jmm] Cognome Nome Homework id
Il file va consegnato in formato di testo semplice; .txt .java sono estensioni accettabili.
Ad esempio, un possibile file per lo studente Mario Rossi e il primo homework è
[jmm] 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 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à 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ì
  • 6 Ottobre 2015, 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 numeri pari, a partire da 0 (0,2,4,6,...)
    Infine, il programma deve stampare l'array così ottenuto in ordine inverso (dall'ultima alla prima posizione).
  • 13 Ottobre 2015, id 2
    Scrivere un metodo  static void stampaCifre (int n) in Java che, preso come parametro un intero n, stampa le sue cifre una sotto l'altra a partire dalla più significativa (quella più a sinistra) fino alla meno significativa (quella più a destra).
  • 20 Ottobre 2015, id 3
    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.
  • 27 Ottobre 2015, id 4
    Scrivere un metodo  
    static int[] crivelloEratostene (int n)
    in Java, che preso un intero n, sfruttando il crivello di Eratostene (
    https://it.wikipedia.org/wiki/Crivello_di_Eratostene), restituisce un array dell'opportuna lunghezza contenente tutti e soli i numeri primi minori o uguali ad n.
    In particolare, il metodo dovrà 
    - Allocare un array di (circa, a seconda dell'implementazione scelta) n booleani che servirà per segnare i numeri da cancellare (il setaccio)
    - effettuare l'operazione di segnatura dei multipli del primo numero del setaccio
    - allocare un array dell'opportuna dimensione contenente tutti i numeri primi minori o uguali ad n (a partire da 2).
  • 3 Novembre 2015, 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.
  • 10 Novembre 2015, id 6
    Scrivere un metodo ricorsivo 
    static int sommaPari (int n)
    in Java, 
    che preso come parametro un intero n, senza far uso di nessun comando iterativo, restituisce la somma di tutti i numeri pari compresi tra 2 ed n. Ad esempio, se n=9, restituisce 20 (poiché 2+4+6+8=20).
  • 17 Novembre 2015, id 7
    Scrivere un metodo ricorsivo 
    static boolean isConstant (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 contiene in tutte le sue posizioni lo stesso valorefalse 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.
  • 24 Novembre 2015, id 8
    Si consideri la struttura dati lista doppiamente concatenata definita dalle seguenti classi: 
    class Elem{
       int valore;
       Elem next;
       Elem prev;
    }
    class Lista{
       Elem first;
       int size;
    }
    Scrivere un metodo
    static void delete (Lista l, Elem e)
    in Java, 
    che preso come parametro una lista l ed un suo elem e, assumendo che e appartenga ad l (senza effettuare ulteriori controlli), cancella l'elem e dalla lista doppiamente concatenata.
  • 1 Dicembre 2015, id 9 (ultimo homework)
    Si consideri la struttura dati lista identificata dal suo elemento di testa
    class Elem{
       int valore;
       Elem next;
    }
    Scrivere un metodo ricorsivo
    static void inserisci (Elem lista, Elem riferimento, Elem nuovo)
    in Java, 
    che preso come parametro una lista lista (identificata dal suo elemento iniziale) e due elementi riferimento e nuovo, inserisce l'elemento nuovo dopo l'elemento riferimento (se riferimento appartiene a lista), altrimenti non modifica la lista.