Homework

A partire dal 18 Ottobre, e fino alla fine delle lezioni, ogni giovedì verranno assegnati degli homework, da svolgere singolarmente e da consegnare via posta elettronica all'indirizzo luca.moscardelli@unich.it, preferibilmente dal proprio indirizzo di posta elettronica istituzionale @studenti.unich.it, mettendo nell'oggetto del messaggio la seguente stringa:
[java] Cognome Nome Homework id
dove Cognome 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 .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à l'annullamento dell'homework o una penalizzazione nella valutazione dell'homework stesso.
 
La consegna va effettuata entro il mercoledì 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 puntia seconda della qualità e del numero dei lavori consegnati e della discussione degli stessi che avverrà contestualmente alla discussione (obbligatoria) del progetto.
 
Di seguito la lista degli homework con la data di assegnamento. Siete invitati a visualizzare questa pagina ogni giovedì
  • 18 ottobre 2018, id 1
    Scrivere un programma in Java che chiede all'utente di immettere da tastiera  tre numeri interi n1, n2 e n3 e stampa sulla console un messaggio che notifica se 
    • i numeri immessi sono in ordine non decrescente ("Numeri ordinati in modo non decrescente");
    • i numeri immessi sono in ordine non crescente ("Numeri ordinati in modo non crescente");
    • i numeri immessi non sono ordinati ("Numeri non ordinati").
      Ad esempio, se l'utente immette i numeri 8, 15, 28, si deve stampare
      Numeri ordinati in modo non decrescente
  • 25 ottobre 2018, id 2
    Scrivere un metodo in Java (si noti che, da questo homework in poi, la consegna del metodo main è facoltativa, se non esplicitamente richiesta: l'importante è che nel file consegnato ci sia(no) il/i metodo/i richiesto/i
    static int metodo(int[] a)
    che preso come parametro un array a di numeri interi (int[]), restituisce il numero di elementi che sono minori o uguali della media aritmetica di tutti gli elementi presenti nell'array stesso.
    Ad esempio, se a={3, 7, 10, 20, 2}, il metodo deve restituire 3 in quanto l'array contiene 3 elementi minori o uguali a 8.4 (la media aritmetica di tutti i suoi elementi).
  • 1° novembre 2018, id 3
    Scrivere un metodo ricorsivo in Java  (il metodo NON deve far uso di nessun comando iterativo e NON deve usare l'operatore * di moltiplicazione tra due numeri
    static int prodotto(int a, int b)
    che presi come parametri due numeri interi a e b (che possono essere anche negativi) restituisce il loro prodotto. 
    Si noti che rispetto al metodo visto a labooratorio, questo homework deve gestire anche numeri negativi.
    Ad esempio, se a=2 e b=-3, il metodo deve restituire -6; se a=-4 ed b=-1 il metodo deve restituire 4.
  • 8 novembre 2018, id 4
    Scrivere un metodo
    static int[] piuFrequente (int[] a) 
    che preso come parametro un array a di numeri interi, restituisce un array di int (della opportuna lunghezza) contenente tutti e soli i valori di a aventi massima frequenza
    Ad esempio, se a={1, 16, 10, 4, 16, 5, 16} viene restituito {16};
    se a={1, 16, 10, 1, 16, 1, 16} viene restituito {1,16}
    se a=null viene restituito null;
    se a={} viene restituito {}.
  • 15 novembre 2018, id 5
    Scrivere un metodo 
    static void ordinaBit (int[] a)
    che preso come parametro un array a di bit (si assuma che ogni elemento di a vale 0 oppure 1), lo ordina in modo non decrescente in tempo Θ(n)
    Ad esempio, se a={1, 0, 0, 1, 1, 0, 0}, dopo l'esecuzione a= {0, 0, 0, 0, 1, 1, 1}.
  • 22 novembre 2018, id 6
    Dati i seguenti tipi riferimento:
    class Punto{
       double x;
       double y;
    }
    class Retta{
       double m;
       double q;
    }
    che rappresentano, nel piano cartesiano, il punto di coordinate (x;y) e la retta di equazione y=mx+q, rispettivamente, scrivere un metodo 
    static boolean appartiene (Punto p, Retta r)
    che presi come parametri un Punto p e una Retta r, restituisce true se e solo se p appartiene a r.
    Nel caso in cui p e/o r valessero null, viene restituito false.
  • 29 novembre 2018, id 7
    Aggiungere alla classe Main del file Main.java visto all'ultima lezione di laboratorio e scaricabile qui un metodo
    static Queue fondiCode (Queue q1, Queue q2)
    che prese come parametri due code q1 e q2, crea e restituisce una nuova coda formata da tutti gli elementi della coda q1 (nell'ordine in cui sono, dal first al last) che precedono tutti gli elementi della coda q2  (nell'ordine in cui sono, dal first al last). 
    Attenzione: tutti gli elementi della nuova coda devono essere creati come nuovi oggetti (con la stessa chiave di quelli presenti in q1 e q2), e non possono riferirsi agli elementi delle code q1 e q2. Inoltre le code q1 e q2 NON devono essere modificate.
    Nel caso in cui una sola delle due code (tra q1 e q2) valga null, la coda creato conterrà tutti gli elementi di quella (tra q1 e q2) che non vale null.
    Se sia q1 che q2 valgono null, viene restituito null.
  • 6 dicembre 2018, id 8
    Aggiungere alla classe Main del file Main.java visto all'ultima lezione di laboratorio e scaricabile qui un metodo
    static List deletePos (List l, int pos)
    che presa come parametro una lista l, elimina dalla lista l'elemento in posizione pos (assumendo che 0 è la prima posizione), e restituisce il riferimento alla lista così ottenuta. 
    Se l vale null, viene restituito null. Se pos non è una posizione valida, viene restituita la lista l senza modifiche.
  • 13 dicembre 2018, id 9 (ultimo homework)
    Aggiungere alla classe Main del file Main.java visto all'ultima lezione di laboratorio e scaricabile qui un metodo ricorsivo
    static int contaPari (Tree t)
    che preso come parametro un albero binario di ricrerca t, restituisce il numero di chiavi pari presenti in t. 
    Il metodo non può usare nessun comando iterativo.
    Se t vale null, viene restituito 0.

Scopri cosa vuol dire essere dell'Ud'A

SEDE DI CHIETI
Via dei Vestini,31
Centralino 0871.3551

SEDE DI PESCARA
Viale Pindaro,42
Centralino 085.45371

email: info@unich.it
PEC: ateneo@pec.unich.it
Partita IVA 01335970693

icona Facebook   icona Twitter

icona Youtube   icona Instagram