![]() |
Pages (2): « 1 [2] Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=259)
-- [Capra] Progetto (http://www.dsy.it/forum/showthread.php?threadid=24088)
Guarda io avevo il tuo stesso problema... però se guardi nella classe element noterai ke c'è il metodo int getIde(), x cui ogni nodo ha un identificatore univoco... il primo nodo ke costruisci avrà identificatore 1, il secondo 2 ecc... x cui io ho fatto grafo[source.getIde() -1][destination.getIde() -1] == true
Sia source.getIde() ke destination.getIde() sono interi corrispondenti al numero del nodo richiesto.. x cui in questo modo colleghi la matrice all'insieme dei nodi... Ricordati il -1 xkè l'identificatore parte da 1 (infatti è ++elem_identifier) mentre il primo indice dell'array è zero..
qualcuno mi spiega come funziona la classe iterator?
Ho un problema...
nella classe di test creo un nodo x che in seguito vado ad aggiungere a un grafo:
Graph primo = new Graph (matrice_data_come_parametro);
Node x = new Node ();
primo.addNode(x);
il compilatore mi da questo errore:
addNode(Graph.Node) in Graph cannot be applied to (Node)
primo.addNode(x);
se qualcuno ha qualche idea sul perchè mi faccia sapere...
grazie
Dunque vediamo se riesco ad aiutarvi..
X Xander: Suppongo ke ti riferisci a quei metodi ke hanno come valore di ritorno iterable<Node>. Iterator è un interfaccia astratta e nn la puoi istanziare come un oggetto, devi quindi usare un oggetto di una classe ke implementi iterable, ad esempio una linkedList... Ti faccio un esempio xkè a parole nn è facile:
Iterable<Node> a = new LinkedList<Node>();
Quindi a è il tuo oggetto, una struttura dati ke contiene oggetti di tipo node. L'iterator serve per interagire con questa collezione, per usarlo devi istanziare un oggetto iterator dal tuo oggetto a ke è iterable.. esempio:
Iterator<Node> b = a.iterator();
Ora da b puoi accedere a tutti i metodi dell'iterator (hasNext() next().....) in riferimento alla collezione di elementi a..
Mentre x imperator: Nn sapendo il tuo codice nn posso dirlo con precisione.. xò quell'errore è dovuto probabilmente al fatto ke al metodo addNode passi una variabile di una tipologia ke java nn si aspetta... quindi dovresti riguardarti le variabili ke hai messo nel codice del metodo secondo me
Ale_Destroy grazie per il consiglio però...mi è stato detto che quell'errore (addNode(Graph.Node) in Graph cannot be applied to (Node) primo.addNode(x)) era forse dovuto perchè cercavo di fare una classe di test al di fuori della classe Graph.
ho provato dunque a fare il main all'interno della classe Graph (come per altro indicato dal prof nel file .java del progetto) e mi da un altro errore...
quando cerco di creare un nodo mi dà quest'errore:
"non-static variable this cannot be referenced from a static context";
grazie per l'aiuto
Giusto nn ci avevo pensato! Bè l'importante è ke hai risolto... e quell'errore nel main lo da anke a me... io x risolverlo ho dichiarato static la classe node e gliel'ho scritto nel commento... Spero gli vada bene xkè altri modi x adesso nn ne vedo!
ale_destroy grazie mille.domani proverò a fare quella cosa che mi hai detto.almeno ci aiutiamo tra di noi..
per quanto riguarda il problema della classe Node,anche io l'ho dichiarata static,altrimenti nn se ne esce +
risolto il pbolema della classe Node dichiarandola static (anche se non mi piace cambiarle il prototipo rispetto a quella che ha dato il prof)
Ho un'altro problema...eppure simile
nella classe di test creo un arco x che in seguito vado ad aggiungere a un grafo:
Graph primo = new Graph (matrice_data_come_parametro);
Node a = new Node ();
Node b = new Node ();
primo.addArc(a, b);
il compilatore mi da questo errore:
addArc (Graph.Node, Graph.Node) in Graph cannot be applied to (Graph.Arc)
primo.addArc(x);
^
Premessa: mi sono creato una classe Arc per gli archi.
la classe Arc è anche lei static, e il main adesso è all'interno della classe Graph.
se qualcuno ha qualche idea sul perchè mi faccia sapere...
grazie
Ale_Destroy,ho fatto quello che mi hai detto te,cioè:
Iterable<Node> a= new Insieme<Node>();
e il compilatore mi dice simpaticamente:
Graph.java:108: <identifier> expected
Iterable <Node> a = new Insieme <Node>();
^
Graph.java:109: cannot resolve symbol
symbol: class Iterable
location: class Graph
Iterable <Node> a = new Insieme <Node>();
^
2 errors
ditemi che fare pls....
x Xander: Prova così allora --> Collection<Node> a = new LinkedList<Node>(); La collection è un'altra struttura dati ke è sottoclasse di iterable.. quindi nel metodo va bene lo stesso.. ma dovrebbe essere la stessa cosa.. Per quanto riguarda il compilatore.. evidentemente nn trova la classe iterable.. x cui le cose sono 2.. Hai messo all'inizio la clausola "import java.util.*? Senza quella nn funziona.. e hai il java 1.5 vero? xkè l'interfaccia iterable è una novità dell'1.5 se hai l'1.4 nn la puoi fare..
x Imperator: Nn ti saprei dire xkè io ho fatto in modo diverso.. cioè mi sembra inutile fare una classe di archi quando un arco nn è altro ke un valore true sulla matrice... ti complichi solo la vita...Basta imporre ke la matrice nella posizione indicata dall'identificatore dei nodi è true.. Cmq ho visto ke nel messaggio di errore ti dice ke è causato dal metodo addArc(x); Suppongo ke x sia l'arco ke hai creato dalla tua classe di archi... xò il metodo addArc accetta 2 parametri source e destination.. quindi 2 nodi.. e nn ci puoi mettere l'arco.. ma nn capisco bene xkè nella riga di comando hai messo addArc(a,b) ma il compilatore trova l'errore in addArc(x)
Altra domanda:
invocando System.out.println(grafo.tostring());
vorrei che mi uscisce una cosa del genere:
Ciao come va?
bene grazie..
su più righe intendo.
ma all'interno di tostring,io posso dare solo un valore di ritorno.
c'è un metodo che mi permetta di andare a capo in una stringa???
prova a inserire nel metodo toString() un qualcosa del tipo
return "Ciao come va?\nbenegrazie..."
\n è il carattere di new line... quindi va a capo
ma il progetto bisogna consegnarlo entro oggi o si è in tempo a consegnarlo anche domani?
All times are GMT. The time now is 05:21. | Pages (2): « 1 [2] Show all 28 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.