Dom 18 Agosto, 06:34:43 - 2019

Autore Topic: Homework2  (Letto 13211 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline lelinolino

  • Guru
  • Professore Ordinario
  • *****
  • Post: 766
  • FeedBack: +81/-28
    • Mostra profilo
    • LeleWorlds
Re: Homework2
« Risposta #30 il: Dom 28 Novembre, 19:54:17 - 2010 »
e poi scusa quando evi popolare l'albero per verificare il metodo verifica non devi instanziare NodoAlbero? e se non sai come si chiama la classe che lo estende e di conseguenza il suo costruttore come fai a 'costruire' un NodoAlbero?


EDIT RITIRO LA CAVOLATA!

EDIT EDIT ma voi riuscite ad inviare il file? Io no... mi dice che e' scaduto il tempo della consegna, e si sto parlando del secondo assignment, non e' per caso che non e' ancora stato aperto l'invio?

c'ho provato anche io ad inviarlo, ma non me lo fa inviare! probabilmente l'invio sarà aperto domani!

Offline Parasca

  • Direttore di Dipartimento
  • ***
  • Post: 1909
  • FeedBack: +267/-229
  • Una scrivania ordinata è sintomo di mente malata!
    • Mostra profilo
Re: Homework2
« Risposta #31 il: Dom 28 Novembre, 20:06:16 - 2010 »
c'ho provato anche io ad inviarlo, ma non me lo fa inviare! probabilmente l'invio sarà aperto domani!

Se andate all'inizio di questa discussione sta scritto che parte domani il secondo assignment..
--> "...ma che matrimonio io voglio sperperare un patrimonio, morire in manicomio, andare all’inferno e far impazzire il demonio...!" <-- (Articolo <3)


Offline Gostner

  • Studente
  • *
  • Post: 29
  • FeedBack: +1/-1
    • Mostra profilo
Re: Homework2
« Risposta #32 il: Dom 28 Novembre, 20:54:27 - 2010 »
Per come ho impostato io alla fine il padre nn serve a nulla!!!
« Ultima modifica: Dom 28 Novembre, 21:04:19 - 2010 da Gostner »

Offline Gostner

  • Studente
  • *
  • Post: 29
  • FeedBack: +1/-1
    • Mostra profilo
Re: Homework2
« Risposta #33 il: Dom 28 Novembre, 22:10:02 - 2010 »
Mi è venuto un dubbio,
DOMANDA PER I PROF
mA L'ALBERO CHE PASSATE IN VERIFICA, PUO AVERE UN NODO CON CAMPO ELEM==0??
NEL CASO SIA N=0 L'ALBERO DEI DIVISORI E'? SOLO LA ROOT CON ELEM=0????

Offline vinkia

  • Guru
  • Professore Associato
  • *****
  • Post: 696
  • FeedBack: +70/-30
  • http://teamend.altervista.org/chi-siamo
    • Mostra profilo
    • TeamEnd applicazioni per Android e non solo...
Re: Homework2
« Risposta #34 il: Dom 28 Novembre, 22:46:05 - 2010 »
Mi è venuto un dubbio,
DOMANDA PER I PROF
mA L'ALBERO CHE PASSATE IN VERIFICA, PUO AVERE UN NODO CON CAMPO ELEM==0??
NEL CASO SIA N=0 L'ALBERO DEI DIVISORI E'? SOLO LA ROOT CON ELEM=0????


inoltre come sono fatti gli alberi che passate a verifica?
dobbiamo considerare che abbiano valori doppi alla stessa profondità? o che magari abbiano root=0 ed altri elementi sotto? avranno numeri di nodi corretti ad ogni profondità? ???
pensavo di aver finito perchè mi dava output corretti, poi mi sono accorto che ci potevano essere casi più complicati...
non mi è chiaro quanto deve essere precisa questa verifica... :-[
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori. Cerca solo di essere migliore di te stesso.

http://teamend.altervista.org/chi-siamo

Offline Stefano Millozzi

  • Prof
  • Studente di Dottorato
  • ******
  • Post: 242
  • FeedBack: +29/-51
    • Mostra profilo
Re: Homework2
« Risposta #35 il: Lun 29 Novembre, 12:08:18 - 2010 »
C'è una cosa che non mi e' chiara: il fatto che la disposizione dei nodi dell'albero generato non segua un ordine particolare, è una condizione necessaria? Cioè, se ad esempio i nodi fossero sempre posizionati in ordine crescente, la soluzione sarebbe accettabile o no?
Nella costruzione dell'albero scegliete pure l'ordine che preferite, ma quando effettuate la verifica se un albero e' un albero di divisori dovete considerare che i nodi figli potrebbero non essere in ordine crescente

Offline Stefano Millozzi

  • Prof
  • Studente di Dottorato
  • ******
  • Post: 242
  • FeedBack: +29/-51
    • Mostra profilo
Re: Homework2
« Risposta #36 il: Lun 29 Novembre, 12:10:17 - 2010 »
io ho fatto restituire null praticamente per 0 e 1... anche perchè il testo esprime chiaramente che i valori dell'albero devono essere maggiori di 1 ;)
Nei casi in cui viene passato n che non ha divisori (numeri primi) l'albero e' costituito dalla sola radice che e' appunto il nodo n. Restituire null e' un errore

Offline Stefano Millozzi

  • Prof
  • Studente di Dottorato
  • ******
  • Post: 242
  • FeedBack: +29/-51
    • Mostra profilo
Re: Homework2
« Risposta #37 il: Lun 29 Novembre, 12:15:53 - 2010 »
Citazione
Homework2Impl risolutore=new Homework2Impl();
//crea albero vuoto
TreeHomework2<Integer> albero=risolutore.creaAlberoVuoto();
//istruzioni per popolare l'albero ....
boolean flag=risolutore.verifica(albero);
Nell'esempio c'e' un errore.
Al posto di TreeHomework2 occorre riportare Albero.
Procedo quanto prima a correggere il testo. Grazie

Offline Stefano Millozzi

  • Prof
  • Studente di Dottorato
  • ******
  • Post: 242
  • FeedBack: +29/-51
    • Mostra profilo
Re: Homework2
« Risposta #38 il: Lun 29 Novembre, 13:06:12 - 2010 »

inoltre come sono fatti gli alberi che passate a verifica?
dobbiamo considerare che abbiano valori doppi alla stessa profondità? o che magari abbiano root=0 ed altri elementi sotto? avranno numeri di nodi corretti ad ogni profondità? ???
pensavo di aver finito perchè mi dava output corretti, poi mi sono accorto che ci potevano essere casi più complicati...
non mi è chiaro quanto deve essere precisa questa verifica... :-[

L'albero passato per la verifica e' un albero qualsiasi con valori interi. Occorre verificare che ciascuno nodo soddisfi la condizione di "Albero dei divisori" e cioe' che x ogni nodo, i figli sono tutti e soli i divisori distinti del nodo.

Offline lelinolino

  • Guru
  • Professore Ordinario
  • *****
  • Post: 766
  • FeedBack: +81/-28
    • Mostra profilo
    • LeleWorlds
Re: Homework2
« Risposta #39 il: Lun 29 Novembre, 19:33:21 - 2010 »
L'albero passato per la verifica e' un albero qualsiasi con valori interi. Occorre verificare che ciascuno nodo soddisfi la condizione di "Albero dei divisori" e cioe' che x ogni nodo, i figli sono tutti e soli i divisori distinti del nodo.

prof, quindi se date come input root=1 || root=0 , l'albero dei divisori dovrà stampare solo la root e la verifica dovrà ritornare true.. Giusto?
E poi il metodo creaAlberoVuoto(), deve creare un riferimento ad un nuovo albero con root null, oppure proprio senza root?

Grazie mille per i chiarimenti!

Offline leomessi90

  • Studente di Dottorato
  • ***
  • Post: 212
  • FeedBack: +12/-7
    • Mostra profilo
Re: Homework2
« Risposta #40 il: Lun 29 Novembre, 21:56:00 - 2010 »
come creo classi all'interno di altre classi? io non l'ho mai fatto prima!
<<Nell'anno 1969 è bastata la potenza di calcolo di due Commodore 64 per mandare con successo una navicella sulla Luna; nell'anno 2003 è necessario un Pentium 4 a 2000 Mhz per far funzionare Windows XP. Qualcosa deve essere andato storto>>

Offline vinkia

  • Guru
  • Professore Associato
  • *****
  • Post: 696
  • FeedBack: +70/-30
  • http://teamend.altervista.org/chi-siamo
    • Mostra profilo
    • TeamEnd applicazioni per Android e non solo...
Re: Homework2
« Risposta #41 il: Lun 29 Novembre, 22:45:14 - 2010 »
come creo classi all'interno di altre classi? io non l'ho mai fatto prima!

basta che dopo la parentesi graffa che chiude la prima classe, ne scrivi un altra come se fossi in un altro file, l'importante è che non sia public!

es

public class Pippo{
             (corpo della classe Pippo)
}

class Paperino{
            (corpo della classe Paperino)
}
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori. Cerca solo di essere migliore di te stesso.

http://teamend.altervista.org/chi-siamo

Offline vinkia

  • Guru
  • Professore Associato
  • *****
  • Post: 696
  • FeedBack: +70/-30
  • http://teamend.altervista.org/chi-siamo
    • Mostra profilo
    • TeamEnd applicazioni per Android e non solo...
Re: Homework2
« Risposta #42 il: Lun 29 Novembre, 22:48:37 - 2010 »
L'albero passato per la verifica e' un albero qualsiasi con valori interi. Occorre verificare che ciascuno nodo soddisfi la condizione di "Albero dei divisori" e cioe' che x ogni nodo, i figli sono tutti e soli i divisori distinti del nodo.


grazie mille professore! Rimane solo un piccolo dubbio: se l'albero passato è null, devo restituire false? Io ho pensato che un albero vuoto non è un divisore!
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori. Cerca solo di essere migliore di te stesso.

http://teamend.altervista.org/chi-siamo

Offline patoz

  • Studente di Dottorato
  • ***
  • Post: 174
  • FeedBack: +45/-49
    • Mostra profilo
Re: Homework2
« Risposta #43 il: Mar 30 Novembre, 01:29:20 - 2010 »
Ok, homework inviato.

Comunque ragazzi, non so se vi capiterà il problema che è capitato anche a me: per verificare che il test verifica funzionasse con ogni tipo di albero, ho provato (a caso) a dargli come input un albero dei divisori di 256, e ho notato che invece di restituirmi true mi restituiva false. Dopo averci buttato un bel po' di tempo, sono riuscito a trovare l'inghippo: per verificare che l'elemento di due nodi è uguale, anche nel caso Integer, bisogna fare il controllo con equals e non con ==. Spero che vi evitiate tutte le "chiamate in cielo" che ho fatto io oggi per far si che il metodo funzionasse. :)

Prof, mi sa dire perché ho dovuto ricorrere a questo barbatrucco?  ???
"Tira more a potato's hair than buoi carret in Arcore's nights"

Offline patoz

  • Studente di Dottorato
  • ***
  • Post: 174
  • FeedBack: +45/-49
    • Mostra profilo
Re: Homework2
« Risposta #44 il: Mar 30 Novembre, 01:34:04 - 2010 »

grazie mille professore! Rimane solo un piccolo dubbio: se l'albero passato è null, devo restituire false? Io ho pensato che un albero vuoto non è un divisore!

Vinkia, nel testo dell'Homework2 dice esplicitamente che al metodo verifica gli potrà essere passato un albero vuoto, o un albero regolare, non un elemento null. L'albero vuoto sarà un albero la cui root è null, ma l'oggetto di classe Albero dovrà comunque essere creato (sennò ti sputerà fuori un odioso nullPointerException, credo). E penso che nel caso l'albero sia vuoto, bisogna restituire true, o almeno, io ho fatto così. :)
"Tira more a potato's hair than buoi carret in Arcore's nights"