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. 2012/2013




A partire dal 25 Ottobre, e fino alla fine delle lezioni, ogni giovedì verranno assegnati degli homework, da svolgere singolarmente e consegnare via posta elettronica all'indirizzo moscardelli@sci.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. La consegna va effettuata entro il mercoledì successivo all'assegnazione dell'esercizio. Il file va consegnato in formato di testo semplice; .txt e .java sono estensioni accettabili.
 
Gli homework non sono obbligatori. Tuttavia, chi consegna almeno i 4/5 degli homework assegnati 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 giovedì
 
  • 25 Ottobre 2012, Homework numero 1
    Scrivere un metodo
    int[][] prodottoMatrici (int[][] matriceA, int[][] matriceB)
    che prese in input due matrici matriceA e matriceB di interi crea e restituisce in output la matrice prodotto delle due matrici. Si assuma che il numero di colonne di MatriceA è uguale al numero di righe di MatriceB.
    In caso di necessità, si può far riferimento a questo link http://it.wikipedia.org/wiki/Moltiplicazione_di_matrici per il prodotto di due matrici.

  • 1 Novembre 2012, Homework numero 2
    Scrivere una versione iterativa ed una versione ricorsiva del metodo
     
    double H(int n)
    che preso in input un numero intero non negativo restituisce l'n-esimo numero armonico H(N)=1 + 1/2 + ... + 1/n.
    Si noti come H(0)=0, H(1)=1, H(2)=1+1/2=3/2 e così via. 

  • 8 Novembre 2012, Homework numero 3
    Scrivere con Eclipse un file MainClass.java in cui si implementa in Java (e non in Java--) il codice del merge-sort come visto a lezione.
    Nel metodo main bisogna far inserire all'utente da tastiera un array (come visto nell'ultima lezione di laboratorio), stamparlo, richiamare il metodo mergeSort e ristamparlo nuovamente (ordinato).

  • 15 Novembre 2012, Homework numero 4 
    Sfruttando opportunamente il codice visto a laboratorio per il cambio di base dei numeri (scaricabile qui), aggiungere alla MainClass scritta a laboratorio un metodo 
    public static int[] somma (int[] numeroA, int baseA, int[] numeroB, int baseB, int baseRisultato)
    che presi in input due addendi (numeroA espresso in base baseA e numeroB espresso in base baseB) restituisce la rappresentazione in base baseRisultato della loro somma. Si ricorda che un array rappresenta un numero nel seguente modo: la posizione 0 è la cifra meno significativa (la più a destra), la posizione 1 è la seconda cifra partendo da destra, e così via fino all'ultima posizione che rappresenta la cifra più significativa (la più a sinistra).

  • 22 Novembre 2012, Homework numero 5
    Sfruttando opportunamente il codice visto a laboratorio per le frazioni (scaricabile qui), aggiungere alla MainClass scritta a laboratorio un metodo iterativo
    public static Frazione potenzaFrazione (Frazione f, int n)
    che presi in input una Frazione f ed un intero n restituisce la frazione risultato dell'elevamento a potenza della frazione f all'esponente n.
    Scrivere inoltre un analogo metodo ricorsivo
    public static Frazione potenzaFrazioneRic (Frazione f, int n)

  • 29 Novembre 2012, Homework numero 6
    Sfruttando opportunamente il codice visto a laboratorio per le frazioni e le espressioni (scaricabile qui), aggiungere alla MainClass scritta a laboratorio un metodo
    public 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.

  • 6 Dicembre 2012, Homework numero 7 (ultimo homework)
    Si consideri il seguente metodo iterativo
static void bubbleSort(int[] a){
for (int i =0; i
for (int j=0;j
if (a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}

che ordina in modo non decrescente un array di interi effuttuando solo scambi tra posizioni consecutive dell'array. Sfruttando opportunamente il codice visto a laboratorio per le liste (scaricabile qui), aggiungere alla MainClass scritta a laboratorio un metodo
public static void ordinaLista (Lista l)
che presa in input una lista l, ordina i suoi elementi in modo non decrescente (senza modificare le chiavi, ma soltanto i riferimenti che collegano i vari elemnti della lista) sfruttando in particolare il metodo static void scambiaConsecutiviLista(Lista l, Elem e) visto a lezione.