Tags:
tag this topic
create new tag
view all tags
---++ Domande sul Modulo 2 (funzioni per la gestione di liste e nodi) In questa pagina potete <a href="#LaForm">porre domande</a> sul Modulo 2 del progetto 2006/2007. Vi prego di inserire un titolo che chiarisca che tipo di domanda state ponendo. Potete rispondere alle domande anche tra di voi. %TOC% --- --- ---+++ Benvenuti Questo è il primo messaggio sulla pagina delle domande riguardanti il *modulo 2* del progetto. Per favore, leggete bene le specifiche e le domande degli altri prima di fare domande ovvie. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 23 Apr 2007 --- ---+++ puntatori a puntatori Per cui dobbiamo usare i puntatori a puntatori <verbatim> </verbatim> -- %MAINWEB%.AlessandroMastropietro - 23 Apr 2007 --- ---++++ Re: puntatori a puntatori Scegliete voi come implementare *list* e *iterator*... <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 24 Apr 2007 --- ---+++ Allocazione e liberazione della memoria Salve prof, le volevo chiedere, dato che non dobbiamo implementare una funzione (ad es.) free_list, come possiamo affrontare la liberazione della memoria allocata costruendo le liste con add_first e add_last??? thx <verbatim> </verbatim> -- %MAINWEB%.MatteoLatini - 23 Apr 2007 --- ---++++ Re: Allocazione e liberazione della memoria E' un'ottima domanda. Questo è un problema che verrà dopo e comunque affrontabile solo con una funzione, come dice lei, di tipo free_list. Non preoccupatevene ora. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 24 Apr 2007 --- ---+++ MAIN Quando sarà disponibile un main per testare le nostre funzioni? <verbatim> </verbatim> -- %MAINWEB%.GiuseppeSantaMariaSosso - 24 Apr 2007 --- ---++++ Re: MAIN Potete testarla anche voi con un vostro main (si tratta solo di chiamare le varie funzioni per costruire qualche nodo). Comunque lo renderò disponibile quanto prima. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 24 Apr 2007 --- ---+++ posizione all'interno della lista non ho capito una cosa...la posizione attuale all'interno della lista quando deve essere aggiornata? <verbatim> </verbatim> -- %MAINWEB%.GianlucaSquarcia - 24 Apr 2007 --- ---++++ Re: posizione all'interno della lista Non c'è "la posizione attuale", ma ce n'è una per ogni istanza del tipo di dato iterator. Viene aggiornata dalla funzione next(). <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 24 Apr 2007 --- ---+++ iterator??? Scusi prof ma non ho ben capito dove punta l'iterator all'interno della lista... ad esempio se noi abbiamo list = 1->3->NULL get_iterator restituisce l'iteratore che se passato a next restituisce 1? e poi un'altra cosa: ma vale lo stesso discorso per iterator come per la free_list? Ovvero e' meglio inserire iterator nella struttura list per inizializzare tutto insieme oppure allocare memoria ogni qual volt a ritorniamo un tipo interator per non incorrere successivamente in una possibile indeterminazione delle variabili void* ritornate da next???? thx <verbatim> </verbatim> -- %MAINWEB%.MatteoLatini - 24 Apr 2007 --- ---++++ Re: iterator??? Risposta alla prima domanda: sì. Iterator è un tipo di dato distinto da list, quindi non deve essere "inserito" dentro list... <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 25 Apr 2007 --- ---+++ struttura list faro senz'altro una domanda banale, ma in qualsiasi tipo di lista che ho visto fin'ora, c'erano sempre dei campi informativi e uno (o anche piu) puntatori. In questo caso, non ho ben capito, dentro alla struttura list, essendo un tipo di dato astratto, cosa dobbiamo mettere oltre al puntatore? <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 24 Apr 2007 --- ---++++ Re: struttura list Certo, finora però avete fissato il tipo di dato dell'elemento di ogni nodo della lista. Qui invece il campo di contenuto, ovvero l'elemento, deve avere un tipo non specificato, ovvero void *. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 25 Apr 2007 --- ---+++ Tipi errori Volevo sapere <verbatim> enum op_errors { OP_OK = 0, OP_MEM_ERROR, OP_NO_ATTRIBUTE_ERROR, OP_GENERIC }; </verbatim> che tipi di errori sono,ossia quando devono essere visualizzati? Che tipo di errore si deve verificare? <verbatim> </verbatim> -- %MAINWEB%.LauraDiSaverio - 24 Apr 2007 --- ---++++ Re: Tipi errori Grazie, aggiorno il file pdf delle specifiche. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 25 Apr 2007 --- ---+++ DELUCIDAZIONI La funzione void *next(iterator iteratore) deve aggiornare l'iteratore affinchè punti al prossimo elemento. Non prendendo *iteratore come argomento, è impossibile aggiornare l'iteratore proprio perchè la funzione accetta una copia e non un puntatore (sarebbero due istanze separate). A questo punto o la funzione deve accettare un puntatore a iterator o semplicemente si definisce il tipo iterator come puntatore a iteratore. Vorrei solo avere una conferma. Inoltre lo stesso discorso può essere fatto con il tipo list. La funzione int new_list(list *lista) cosa si aspetta: un puntatore allocato precedentemente con malloc, l'indirizzo di una variabile list o un puntatore non inizializzato? <verbatim> </verbatim> -- %MAINWEB%.GiuseppeLaTorre - 25 Apr 2007 --- ---++++ Re: DELUCIDAZIONI Questa è una buona domanda. Ma noi non abbiamo mai detto che *list* e *iterator* siano per forza delle strutture. Potrebbero essere dei puntatori a strutture (*typedef* insegna). <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 25 Apr 2007 --- ---+++ int new_list (list* ) Salve! Forse sto x porre una domanda davvero sciocca. Alla funzione int new_list (list *) viene passato un puntatore e la funzione deve creare una lista vuota. Ma lista vuota non vuol dire che il puntatore list punterebbe a NULL ? In tal caso non avrebbe utilità questa funzione, perciò ho mal interpretato io? <verbatim> </verbatim> -- %MAINWEB%.MirkoSquitieri - 25 Apr 2007 --- ---+++ int new_list nelle specifiche il prototipo di questa funzione è: int new_list(list *); è proprio cosi o è un errore e sarebbe: int new_list(list *l); ?? <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 25 Apr 2007 --- ---++++ Re: new list non sarebbe meglio che la funzione new_list ritornasse un list? <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 25 Apr 2007 --- ---+++++ Re: Re: new list si infatti, sto notando che forse è un errore, infatti momentaneamente ho tralasciato... <verbatim> </verbatim> -- %MAINWEB%.MirkoSquitieri - 25 Apr 2007 --- ---++++++ Re: Re: Re: new list Non è un errore: è stata impostata volutamente in quel modo. Come ho scritto al vostro collega sopra (DELUCIDAZIONI) non è detto che list sia una struttura, può anche essere un puntatore a una struttura. Il nome dei parametri non è obbligatorio nei prototipi. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 25 Apr 2007 --- ---++++ Re: new list infatti....la lista vuota significa che il puntatore deve essere inizializzato a NULL e basta....non capisco quindi perkè bisogna controllare se l'operazione ha avuto successo oppure no <verbatim> </verbatim> -- %MAINWEB%.GianlucaSquarcia - 25 Apr 2007 --- ---+++++ Re: Re: new list Per generalità. Le funzioni restituiscono tutte un codice d'errore, per pulizia, generalità, ecc. e anche perché se implemento la lista in modo più complesso (magari non è il vostro caso) potrebbero (ad esempio) sorgere problemi di cui si vuole tenere traccia. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 25 Apr 2007 --- ---++++++ Re: Re: Re: new list c'è qualcosa che continua a sfuggirmi..abbiate pazienza.. quindi se la mia new_list ha un prototipo del genere: int new_list(list *l); è corretto o è un errore? (in pratica non fa altro che mettere un puntatore a NULL) <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 25 Apr 2007 --- ---++++ Re: Re: Re: Re: new list Non potete modificare il prototipo delle funzioni che vi forniamo. Dovete semmai decidere come definire il tipo *list*. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 25 Apr 2007 --- ---+++ void *next( iterator i ); Salve professore , ho una domada da farle, come posso modificare iterator se dalle specifiche lei mi passa una coppia 0.0? Secondo me void *next( iterator i ); dovrebbe essere un puntatore senno non si riesce a modificare facilmente ma bisognerebbe implementare un workaround per aggirare il problema. Grazie <verbatim> </verbatim> -- %MAINWEB%.AntonioGaudino - 25 Apr 2007 --- ---++++ Re: void *next( iterator i ); Ho risposto sopra a questa domanda. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 25 Apr 2007 --- ---+++ int get_attributo(node n, char* attribute, char** value); Non ho ben capito il funzionamento della funzione get_attributo...la funzione ricerca nella lista degli attributi di node n se c'è la stringa attribute...se la trova la copia in value, ma praticamente viene copiata proprio la stringa attribute in value??? <verbatim> </verbatim> -- %MAINWEB%.LauraMinicucci - 25 Apr 2007 --- ---++++ Re: int get_attributo(node n, char* attribute, char** value); No, nella stringa *puntata* da value viene copiato il valore *associato* all'attributo chiamato *attribute*. Il concetto e' quello dei tag xml: attribute="valore". <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 25 Apr 2007 --- ---+++ Chiarimenti su get_attributo e set_attributo 1)Le funzioni get_attributo e set_attributo si riferiscono soltanto ai nodi di tipo TAG_NODE? (mi porta a pensare questo il fatto che nel tipo TEXT_NODE il campo attributes non deve essere impostato). 2)La funzione set_attributo deve sia creare un nuovo attributo che sovrascriverlo? (Es. se un nodo ha un attributo "PIPPO" con valore "PLUTO" e chiamo la funzione set_attributo("PIPPO", "PAPERINO"), il vecchio "PLUTO" deve essere sovrascritto con il nuovo "PAPERINO" o deve essere restituito un errore perchè si sta tentando di sovrascrivere un valore gia esistente? Se invece il nuovo attributo non è gia presente, deve essere aggiunto o deve essere restituito errore perchè si sta tentando di modificare il valore di un attributo che non è presente? <verbatim> </verbatim> -- %MAINWEB%.GiuseppeLaTorre - 25 Apr 2007 --- ---++++ Re: Chiarimenti su get_attributo e set_attributo 1) sì 2) set_attributo serve sia a sovrascrivere che a creare (secondo se l'attributo e' presente oppure no). <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 26 Apr 2007 --- ---+++ Errori e get_iterator() Come gestiamo eventuali errori nella funzione get_iterator() visto che quest'ultima ritorna l'istanza dell'iteratore e non un errorcode? <verbatim> </verbatim> -- %MAINWEB%.OliverTran - 26 Apr 2007 --- ---++++ Re: Errori e get_iterator() Quali errori possono verificarsi?... <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 26 Apr 2007 --- ---+++++ Re: Re: Errori e get_iterator() Nel mio caso il tipo dati iterator è un puntatore a struttura di tipo iter che contiene dei campi che tengano traccia della lista a cui è associato l'iteratore. Di conseguenza nella get_iterator devo generare un'istanza della struttura iter, operazione che potrebbe darmi un OP_MEM_ERROR. <verbatim> </verbatim> -- %MAINWEB%.OliverTran - 26 Apr 2007 --- ---++++++ Re: Re: Re: Errori e get_iterator() Tralasci l'errore o lo emetta in uscita ed esca dal programma. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 26 Apr 2007 --- ---+++ new_text_node nelle specifiche c'e scritto che devono essere impostati i campi text, type e children(lista vuota)...va impostato anke attribute come lista vuota? <verbatim> </verbatim> -- %MAINWEB%.GianlucaSquarcia - 26 Apr 2007 --- ---++++ Re: new_text_node essendo un nodo di testo non è fondamentale (i nodi di testo non hanno attributi), ma se lo fate va bene. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 26 Apr 2007 --- ---+++ funzioni di xsml_list non ho capito se posso usare, in xsml_node.c, le funzioni di xsml_list e se posso includere in xsml_node.h il file xsml_list.h <verbatim> </verbatim> -- %MAINWEB%.GianlucaSquarcia - 26 Apr 2007 --- ---++++ Re: funzioni di xsml_list Devo per forza, no? <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 26 Apr 2007 --- ---+++ Attributi Come sono memorizzati questi attributi di nodi? Ovvero io ho un nodo n di tipo tag_node che ha una list attributes, implementata a nostro piacimento. Visto che questa lista l'abbiamo implementata noi, possiamo anche decidere come implementare il tipo di dato che memorizzerà queste coppie attributo-valore nella list attributes? <verbatim> </verbatim> -- %MAINWEB%.OliverTran - 26 Apr 2007 --- ---++++ Re: Attributi Esattamente. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 26 Apr 2007 --- ---+++ Struttura list - ancora... Salve Professore, vorrei avere spiegazioni ulteriori circa la struttura da definire list. Non ho ancora chiaro cosa si dovrà fare con questa struttura e non riesco ad organizzarmi al meglio. Sicuramente è un mio problema. E' corretto pensare che l'albero che si dovrà implementare per l'analisi sintattica è quello presente nell'introduzione XML e xsML delle specifiche del Modulo 1? Se si sarebbe corretta la struttura (1) per la sua rappresentazione in memoria? Grazie mille. <verbatim> Struttura (1) typedef struct list list; struct list {void *el; list *child; list *brother}; </verbatim> -- %MAINWEB%.AndreaMencaroni - 26 Apr 2007 --- ---++++ Re: Struttura list - ancora... Andrea, una lista è una lista, non deve essere un albero. Voi non dovete implementare l'albero (anche se di fatto lo fate attraverso la struttura node). La lista (e tutte le funzioni di interfacciamento) deve essere una struttura indipendente dal contesto del progetto, quindi utilizzabile in qualsiasi ambito. La seconda parte del modulo, invece, è più specifica rispetto al progetto, ma - di nuovo - potrebbe essere utilizzata per qualsiasi struttura gerarchica che abbia bisogno delle stesse informazioni. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 26 Apr 2007 --- ---+++ pignoleria sulle specifiche Quando nelle specifiche si legge "nel caso del nodo di tipo testo (testo passato in input alla funzione), devono essere impostati i campi text, type (= TEXT_NODE) e children (lista vuota)", per campo text s'intende il campo name, giusto? <verbatim> struct node{ char *name; list attributes; node_type type; list children; }; </verbatim> -- %MAINWEB%.CleoniceMansillo - 26 Apr 2007 --- ---++++ Re: pignoleria sulle specifiche Sì, è un refuso di una precedente versione delle specifiche. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 26 Apr 2007 --- ---+++ Re: funzioni di xsml_list però nelle specifiche c'e scritto che l'implementazione delle liste non sarà nota alle funzioni di gestione dei nodi, cosa singnifica? <verbatim> </verbatim> -- %MAINWEB%.GianlucaSquarcia - 26 Apr 2007 --- ---++++ Re: Re: funzioni di xsml_list Significa che le funzioni di gestione dei nodi *utilizzeranno solo l'interfaccia*, ovvero le funzioni di gestione delle liste, senza conoscere come il tipo di dato astratto viene effettivamente implementato. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 26 Apr 2007 --- ---+++ add_child e lista children Forse è una domanda stupida, ma quando, con add_child, aggiungiamo un figlio alla lista children, va inserito in qualche posizione in particolare (testa, coda o all'interno)? o la funzione è chiamata con un certo ordine e quindi facciamo solo inserimenti in testa? <verbatim> </verbatim> -- %MAINWEB%.CleoniceMansillo - 26 Apr 2007 --- ---++++ Re: add_child e lista children Non è una domanda tanto stupida. Bisogna effettuare una aggiunta in coda per preservare l'ordine dei nodi inseriti. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 26 Apr 2007 --- ---+++ Riferimento o copia dei nodi in add_child Nella funzione int add_child(node parent, node child); child è di tipo *node, questo implica che l'istanza del child che passiamo alla funzione viene solo assegnata. Qualsiasi modifca esterna fatta al child si ripercuote anche nella struttura ad albero. E' corretto così o si dovrebbe trovare un modo generico di clonare il child creando così una nuova istanza indipendente? <verbatim> </verbatim> -- %MAINWEB%.GiuseppeLaTorre - 26 Apr 2007 --- ---++++ Re: Riferimento o copia dei nodi in add_child Corretto: io prima creo i nodi e poi li collego "ad albero". Quando modifico un nodo, voglio che questa modifica valga per il nodo in quanto parte dalla struttura complessiva. Non devo creare copie. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 26 Apr 2007 --- ---+++ Funzioni Nelle funzioni int new_text_node(node *n, char *text) int new_tag_node(node *n, char *name) int set_attributo(node n, char *attribute, char *value) Le variabili text, name e value devono essere clonate o semplicemente assegnate? <verbatim> </verbatim> -- %MAINWEB%.GiuseppeLaTorre - 26 Apr 2007 --- ---+++ risultati primo modulo Salve prof vorrei sapere se i risultati del primo modulo usciranno in questi giorni, oppure alla fine dei 4 moduli?????? <verbatim> </verbatim> -- %MAINWEB%.GennyProto - 27 Apr 2007 --- ---++++ Re: risultati primo modulo Speriamo prima della consegna del secondo modulo. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 27 Apr 2007 --- ---+++ Chiarimenti per Funzioni sulle Liste Salve! Ci sono molti vuoti che non sono riuscito a colmare, leggendo le specifiche. 1) Ammettendo che "list" sia il tipo di dato con cui costruire una lista concatenata, se il tipo di nodo puntato da "*el" non e' un nodo di tipo "list", come possiamo mettere questo (in testa o in coda) alla lista "*l" di tipo list ? 2) Se ho ben capito chiamando "get_iterator(list l)", sulla lista "l" ci viene restituito il puntatore alla testa della lista ? Ho detto questo dalle parole <<" ... L'iteratore restituito dalla funzione si trova inizialmente davanti al primo elemento. ..."> 3) Quel' e il compito di "int new_list(list *)" ? Se non fa altro che mettere il puntatore alla lista di tipo "list" a NULL, qual'e puo essere la sua utilita' ? Insomma in quali casi va usata ? Grazie! Buon Lavoro <verbatim> </verbatim> -- %MAINWEB%.PezzRico - 27 Apr 2007 --- ---+++ OP_NO_ATTRIBUTE_ERROR Questo errore viene ritornato solo dalla get_attribute quando non trova l'attributo ricercato? Ho riscaricato il file .pdf ma non ci sono stati aggiornamenti riguardo gli errori. <verbatim> </verbatim> -- %MAINWEB%.OliverTran - 28 Apr 2007 --- ---+++++ Re: Re: Chiarimenti su get_attributo e set_attributo Salve Prof. Vorrei capire meglio se la funzione "set_attributo" deve (1) cercare se l'ATTRIBUTO è presente nella lista degli attributi e nel qual caso sovrascrivere il VALORE ad esso associato e (2) nel caso l'ATTRIBUTO non sia presente nella lista creare la coppia (ATTRIBUITO,VALORE) collocandola in ultima posizione della lista. Grazie. <verbatim> </verbatim> -- %MAINWEB%.AndreaMencaroni - 28 Apr 2007 --- ---++++++ Re: Re: Re: Chiarimenti su get_attributo e set_attributo Ho aggiornato il pdf delle specifiche. Per vostra comodità ho messo in italico le risposte ai vostri quesiti. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 28 Apr 2007 --- ---+++ Struct è errato creare una lista doppia? <verbatim> typedef struct elem *list struct elem { int value list next list prec }; </verbatim> -- %MAINWEB%.DanieleR - 28 Apr 2007 --- ---+++ Iterator e next Buongiorno, non mi sono chiare alcune cose: 1) dalle specifiche: "void *next(iterator i); Restituisce il prossimo elemento puntato dall'iteratore (la successiva chiamata a next deve sempre restituire l'elemento seguente all'ultimo elemento restituito)." Ovvero se sono arrivata alla fine della lista la next cosa restituirà, errore o NULL? 2) Sempre dalle specifiche: "int has_next(iterator i); Restituisce 1 se l'iteratore non è ancora arrivato alla fine della lista (ovvero se punta a un elemento valido), 0 altrimenti." Se sono arrivata alla fine della lista, sto ancora puntando ad un elemento valido, ma la lista non ha un next. Non dovrei allora restituire 0? Grazie <verbatim> </verbatim> -- %MAINWEB%.DeliaPassalacqua - 28 Apr 2007 --- ---++++ Re: Iterator e next 1) NULL 2) 0 <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 29 Apr 2007 --- ---++++ Re: Struct Potete implementare i tipi di dato come volete. Tenete conto solo che valuteremo l'efficienza delle funzioni di aggiunta in testa e in coda alla lista. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 29 Apr 2007 --- ---+++ void *next(iterator i); Forse chiederò una cosa banale ma non ho ben capito: "void *next(iterator i); Restituisce il prossimo elemento puntato dall'iteratore (la successiva chiamata a next deve sempre restituire l'elemento seguente all'ultimo elemento restituito)." Questo vuol dire che oltre a restituire l'elemento puntato dall'iteratore i devo anche aggiornare l'iteratore facendolo puntare all'elemento successivo della lista? Grazie <verbatim> </verbatim> -- %MAINWEB%.LauraMinicucci - 29 Apr 2007 --- ---+++ NEW LIST alla new_list(list *) cosa viene passato? Cioè io nel main devo creare un: list ptr; e poi chiamare new_list(&ptr); e una volta dentro allocare un blocco vuoto, che avrà come valore 0 e come next 0? Inoltre la struttura cosa conterrà nel campo valore? un intero, un carattere...ecc ecc ? <verbatim> </verbatim> -- %MAINWEB%.DanieleR - 29 Apr 2007 --- ---+++ main2b.c problema nodo t4 Professore, il nodo t4 viene creato con new_text_node, poi c'è il controllo scritto sotto. Non mi darà mai ok, ho capito male io? Grazie <verbatim> if (get_node_type(t4) == TAG_NODE) printf("t4 TAG_NODE (ok)\n"); else printf("t4 TEXT_NODE (problema)\n"); </verbatim> -- %MAINWEB%.DeliaPassalacqua - 29 Apr 2007 --- ---++++ Re: main2b.c problema nodo t4 Grazie, ho aggiornato il main2b.c <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 29 Apr 2007 --- ---++++ Re: NEW LIST L'implementazione è libera. L'importante è che le funzioni agiscano correttamente. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 29 Apr 2007 --- ---++++ Re: void *next(iterator i); Esattamente. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 29 Apr 2007 --- ---+++ (Void *) Come immaginavo, all'uscita del suo main sarebbero sorti i problemi: ho completato il mio xsml_list.c pensando che il (void *el) fosse un elemento passato via main. Da quello ke posso vedere dal suo main, le cose non stanno così, e allora mi chiedo: ma l'elemento *el da dove lo prendiamo? Da input tramite scanf? ma soprattutto che dato è? int, char...ecc ecc ? <verbatim> </verbatim> -- %MAINWEB%.DanieleR - 30 Apr 2007 --- ---+++ void *next(iterator i) Questa funzione oltre che incrementare il valore puntato dall'iteratore, modifica anche la lista accorciandola, o è un puntatore in sola lettura? <verbatim> </verbatim> -- %MAINWEB%.DanieleR - 30 Apr 2007 --- ---+++ problema main2a.c non riesco a capire perche con il mio main, il mio file xsml_list.c funziona e con quello rilasciato dal prof no..o meglio, non mi stampa i caratteri giusti (nel ciclo while..) nella mia implementazione, un oggetto di tipo iterator ha solo un puntatore alla lista. Non capisco come fare per far stampare il campo di tipo char* che è nella lista puntata dall'iteratore.. <verbatim> while(has_next(i)) { char *s = (char *)next(i); printf("%s,", s); } </verbatim> -- %MAINWEB%.JacopoSciarra - 30 Apr 2007 --- ---+++ (senza titolo) mi scusi ma come possiamo far avanzare l'iteratore se il puntatore passato dal main è sempre lostesso? a mio avviso questo il segmento di codice corretto per la scrittura degli elementi dal main dovrebbe essere una cosa del genere, forse ho interpretato male le specifiche? <verbatim> while(has_next(i)){ printf("%d, ",i->el); i=next(i); } </verbatim> -- %MAINWEB%.MicheleMartinelli - 30 Apr 2007 --- ---+++ Incremento puntatore da *next professore a me va tutto tranne l'iteratore. io ho bisogno, dal main, di fare i=next(i); per incrementare l'iteratore. Non riesco in alcun modo a passarlo e modificarlo by ref chiamando solo la next(i). <verbatim> while(has_next(i)) { char *s = (char *)next(i); printf("%s,", s); } </verbatim> -- %MAINWEB%.DanieleR - 30 Apr 2007 --- ---+++++ Re: Re: itaratore e stampa di caratteri il mio problema su questo ciclo while è che non mi stampa i caratteri giusti.. le funzioni dell'iteratore le ho provate tutte singolarmente e funzionano.. chiedo agli altri utenti se riscontrano problemi nello stampare i caratteri o se è solo un errore mio.. è possibile che ci sia un problema nella seguente riga? <verbatim> char *s = (char *)next(i); </verbatim> -- %MAINWEB%.JacopoSciarra - 30 Apr 2007 --- ---++++++ Re: Re: Re: itaratore e stampa di caratteri ciao jacopo potresti spiegarmi come hai fatto la next(i)? xke io proprio nn ci riesco, c'è qualcosa ke mi sfugge!!! <verbatim> </verbatim> -- %MAINWEB%.DanieleR - 30 Apr 2007 --- ---++++ Re: (senza titolo) dipende da come hai creato la tua struttura iterator..questa funzione ha solo lo scopo di spostare di una posizione in avanti il puntatore alla lista..(spero non di dire fesserie) <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 30 Apr 2007 --- ---+++++ Re: Re: (senza titolo) infatti ma a me nn funziona facendo next(i) ma solo se faccio i=next(i)! e non riesco a capire dove sbaglio <verbatim> </verbatim> -- %MAINWEB%.DanieleR - 30 Apr 2007 --- ---+++ jetset tribute Avrei due domande professore: 1) in get/set_attributo il parametro -attribute- è implicitamente accettato come valido, stando alle specifiche. Le funzioni devono tornare un codice di errore come OP_GENERIC in caso di nomi di attributo non validi? 2) la ricerca del nome_attributo è case-sensitive? <verbatim> </verbatim> -- %MAINWEB%.MevioColucci - 30 Apr 2007 --- ---++++ Re: jetset tribute 1) potete fare come credete, comunque sì: se ci sono problemi diversi da quelli previsti dovete emettere OP_GENERIC 2) sì, case sensitive <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 01 May 2007 --- ---++++++ Re: Re: Re: next(i) anche io nel mio main per mandare avanti faccio i = next(i) nel main del prof credo che si faccia una conversione.. nel senso che chiama la next, e che il risultato, tramite casting, sia convertito in una stringa, che dovrebbe essere quello che stampa.. pero a me stampa dei caratteri senza senso.. <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 30 Apr 2007 --- ---+++ next(i) Jacopo, è sbagliato fare i=next(i)!!! bisogna fare solo next(i), e avere come risultato l'iteratore modificato by val. Ma ciò non è possibile visto ke è passato by val e non by ref. se fosse by ref sarebbe così: next(&i)! Non riesco a uscirne!!!! <verbatim> </verbatim> -- %MAINWEB%.DanieleR - 30 Apr 2007 --- ---++++ Re: next(i) Daniele, puoi dichiarare iterator come un puntatore a struttura. Guarda cosa ha scritto il prof. in "DELUCIDAZIONI". <verbatim> </verbatim> -- %MAINWEB%.DeliaPassalacqua - 30 Apr 2007 --- ---+++++ Re: Re: next(i) Ciao Delia. Si è proprio quello che ho fatto, le ho provate tutte! Ho provato senza puntatore,con puntatore e doppio puntatore alla struttura..ma non va!Cioè: nella funzione lo sposta il puntatore, ma quando lo leggo da main non è stato modificato,quindi a meno che non passo &i(essendo by val)da main, o faccio i=next(i), non so proprio come fare :( <verbatim> </verbatim> -- %MAINWEB%.DanieleR - 01 May 2007 --- ---+++ Gestione memoria && argomenti null Salve prof ho 2 domande da farle: 1 : Nella funzione set attributo quando devo aggiornare il valore dell'attributo sto usando la realloc, in questo caso se dovesse fallire devo salvarmi l'indirizzo e ritentare opp. restituisco solamente OP_MEM_ERROR ?? 2 : se gli argomenti ricevuti ad esempio in set_attributo come attribute o value sono uguali a NULL, dobbiamo restituire errore oppure consideriamo il caso di inserire ad esempio un attributo con valore o nome uguale a NULL? <verbatim> </verbatim> -- %MAINWEB%.GabrieleIoannucci - 30 Apr 2007 --- ---++++ Re: Gestione memoria && argomenti null Fate liberamente quello che credete più giusto. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 01 May 2007 --- ---+++ STRUTTURA LIST un domanda, ma la struttura list che dobbiamo creare, deve reppresentare la struttura di un nodo della lista? o possiamo creare una struttura a parte propria della lista?e in questo caso, dobbiamo definire anche la struttura di un nodo? <verbatim> </verbatim> -- %MAINWEB%.LucaDiFilippo - 30 Apr 2007 --- ---++++ Re: STRUTTURA LIST Ho già risposto a questa domanda: leggere sopra. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 01 May 2007 --- ---+++ funzione add_child (...) vorrei fare 2 domande riguardo la funzione (l'ho gia' sviluppata ma vorrei una conferma :) #1: la funzione deve quindi aggiungere nel campo "list children del nodo parent" il contenuto del campo "list children del nodo child"? #2: nel caso in cui il nodo child avesse piu' di un figlio, la funzione dovra' aggiungerli tutti (in coda) al nodo parent? grazie :) <verbatim> </verbatim> -- %MAINWEB%.ManuelMinopoli - 01 May 2007 --- ---++++ Re: funzione add_child (...) No! La funzione deve aggiungere il nodo child (solo il nodo, non i suoi figli) alla lista children del nodo parent!!! <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 01 May 2007 --- ---+++ next per modificare il next basta salvarsi in una variabile di tipo *void l'elemento corrente e mandare avanti iteratore come se fosse una normale lista...cosi a me almeno funziona <verbatim> </verbatim> -- %MAINWEB%.AlessandroMastropietro - 01 May 2007 --- ---+++ funzioni next e getiterator un paio di domande: 1 la funzione next deve anche spostarsi alla posizione sulla lista successiva? 2 la funzione gert_iterator come fa a restituire degli errori se se ne verificassero?come ad esempio nell'allocazione di memoria? <verbatim> </verbatim> -- %MAINWEB%.LucaDiFilippo - 01 May 2007 --- ---+++ next( iterator i ) nn mi funziona questo comando, qualcuno saprebbe spiegarmi perchè? Tra l'altro per ora non trovo metodo migliore di eseguire questa azione di shifting...ma forse mi verrà in mente. Il compilatore nn mi dice nulla, né warnings né errors. Logicamente a me sembra corretta...però mi da segmentation fault in fase di esecuzione. In pratica gli dico di puntare a cio cui punta il campo next puntato da i->nodo dove i->nodo è un puntatore void dichiarato nella struttura iteratore <verbatim> i->nodo=(list *) (*(i->nodo))->next; </verbatim> -- %MAINWEB%.AlainBindele - 01 May 2007 --- ---+++ OP_MEM_ERROR e OP_GENERIC Buonasera, vorrei sapere se nelle funzioni add_first(list *l, void *el) e add_last(list *l, void *el), una situazione del tipo (*l==NULL), cotrollata prima di allocare memoria, deve restituire un errore di memoria, oppure è da considerarsi un errore generico? Grazie. <verbatim> </verbatim> -- %MAINWEB%.GloriaRomualdi - 01 May 2007 --- ---++++ Re: OP_MEM_ERROR e OP_GENERIC Scegliete voi. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 02 May 2007 --- ---+++ altri tipi di dato Salve, volevo sapere se era possibile definire ulteriori tipi di dato oltre a list ed iterator... Grazie <verbatim> </verbatim> -- %MAINWEB%.LauraMinicucci - 02 May 2007 --- ---++++ Re: altri tipi di dato L'implementazione è libera, potete implementare come volete (tenendo conto dell'efficienza dell'implementazione). <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 02 May 2007 --- ---+++ get_attribute non ho ben capito come funziona questa funzione. Essa deve cercare in una lista di stringhe (appartenenti alla lista attributes del nodo in questione) quella che si chiama con il valore di attribute? e poi copiare il valore della stringa nell'array di char puntato da value?? quindi è una sorta di "find" sulle liste? <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 02 May 2007 --- ---+++ get_attribute non è che qualcuno gentilmente mi spiegherebbe come funziona questa funzione? il valore *attribute passato come paramentro che cosa è esattamente? è un elemento di una lista di *char? quindi bisogna effettuare una ricerca nella lista attributes del nodo n, dando per scontato che questa lista sia di *char? <verbatim> int get_attributo(node n, char *attribute, char **value); </verbatim> -- %MAINWEB%.JacopoSciarra - 02 May 2007 --- ---++++ Re: get_attribute non è che qualcuno gentilmente mi spiegherebbe come funziona questa funzione? il valore *attribute passato come paramentro che cosa è esattamente? è un elemento di una lista di *char? quindi bisogna effettuare una ricerca nella lista attributes del nodo n, dando per scontato che questa lista sia di *char? <verbatim> int get_attributo(node n, char *attribute, char **value); </verbatim> -- %MAINWEB%.JacopoSciarra - 02 May 2007 --- ---++++ Re: get_attribute non è che qualcuno gentilmente mi spiegherebbe come funziona questa funzione? il valore *attribute passato come paramentro che cosa è esattamente? è un elemento di una lista di *char? quindi bisogna effettuare una ricerca nella lista attributes del nodo n, dando per scontato che questa lista sia di *char? <verbatim> int get_attributo(node n, char *attribute, char **value); </verbatim> -- %MAINWEB%.JacopoSciarra - 02 May 2007 --- ---+++++ Re: Re: Re: get_attribute Per capire gli attributi bisogna riferirsi alle specifiche del modulo 1 del progetto: un attributo è dato da una coppia (chiave, valore). Ad esempio, nel caso specifico dell'xsML, specifico questa coppia dentro i tag: <verbatim> <esempio nome_attributo="valore_attributo"> </verbatim> Quando chiamo get_attributo con il nome "nome_attributo" sul nodo corrispondente a esempio voglio ottenere il valore di tale attributo, ovvero la stringa "valore_attributo" (senza virgolette). <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 02 May 2007 --- ---+++ tipo di dato attributo il mio dubbio è questo...ho creato una struttura contenente 2 campi, char *text e int d, che rapprensentano la coppia nome-valore relativa ad un attributo. Questo struttura è poi stata chiamata, con typedef, data. Nel mio programma quindi, per vari motivi, la get_attributo dichiara localmente un puntatore a questa struttura. È un errore oppure no? <verbatim> struct data{ int d; char *text; }; typedef struct data data; nella get_attributo(....): data *tmp; tmp=malloc(sizeof(ELEMENT)); ELEMENT è l'alias della lista definito xsml_list.h . . . </verbatim> -- %MAINWEB%.GianlucaSquarcia - 02 May 2007 --- ---++++ Re: tipo di dato attributo Non capisco perche' il tipo di dato intero. Che cosa e' intero?? Gli attributi possono avere qualsiasi chiave e qualsiasi valore (non solo numerico). <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 02 May 2007 --- ---+++ Re: tipo di dato attributo si scusi ha ragione userò un'altro char *. A parte questo...è giusto? <verbatim> </verbatim> -- %MAINWEB%.GianlucaSquarcia - 02 May 2007 --- ---++++ Re: tipo di dato attributo Non c'è un modo solo di farlo e non posso giudicare semplicemente da un'allocazione della struttura. Ripeto: fate voi, siete liberi di fare come volete, purché le funzioni facciano quello che devono fare. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 02 May 2007 --- ---+++ output main2b.c quale dovrebbe essere l'output corretto? <verbatim> </verbatim> -- %MAINWEB%.GianlucaSquarcia - 02 May 2007 --- ---++++ Re: output main2b.c L'output corretto dovete capirlo voi. Ci sono alcune indicazioni nelle printf (ok va bene, problema va male), ma dovete iniziare a pensare che nessuno vi dirà, quando lavorate, qual è l'output corretto e qual è quello sbagliato. Cercate di capirlo da voi. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 02 May 2007 --- ---+++ (senza titolo) per Gianluca: che senso ha fare una struttura "data" e poi un typedef struct sempre con lo stesso nome? <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 02 May 2007 --- ---+++ output Scusi prof come è possibile che il programma con il debug giri perfettamente e quando lo lancio da riga di commando nn faccia vedere nulla?? <verbatim> </verbatim> -- %MAINWEB%.AlessandroMastropietro - 02 May 2007 --- ---++++ Re: (senza titolo) solo per abbreviare.... <verbatim> </verbatim> -- %MAINWEB%.GianlucaSquarcia - 02 May 2007 --- ---++++ Re: output Strano. Ha provato a compilare sotto linux con gcc? <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 02 May 2007 --- ---++++ Re: output si ho provato a compilarlo nei lab a matematica e funzionava tutto anche su linux <verbatim> </verbatim> -- %MAINWEB%.AlessandroMastropietro - 02 May 2007 --- ---+++ enum OP_ERRORS?? Scusi prof. ma l'enum. OP_ERRORS va inclusa solo in list.h o node.h o in entrambi i files(in questo caso mi da errore rechiarazine)?, perche se lo includo solo in list cosa c'entra ad esempio l'errore OP_NO_ATTRIBUTE_ERROR con l'A.D.T. creato con le liste . .? Grazie . . . <verbatim> </verbatim> -- %MAINWEB%.GabrieleIoannucci - 03 May 2007 --- ---+++ funzioni in tempo costante se consegno il progetto con 1 sola funzione in tempo costante invece che con 2, viene considerato sbagliato l'intero progetto? <verbatim> </verbatim> -- %MAINWEB%.GianlucaSquarcia - 03 May 2007 --- ---++++ Re: enum OP_ERRORS??? gabrie va solo in list.h poichè quest'ultimo verrà incluso in node.h!!!!!!cmq prof per i risultati del primo modulo quando usciranno??? <verbatim> </verbatim> -- %MAINWEB%.AlessandroMastropietro - 03 May 2007 --- ---+++ scorrimento di liste nelle specifiche c'è scritto che quando lavoriamo sui nodi, non si puo accedere direttamente ai campi di list ed iterator.. questo vuol dire che l'unico modo che abbiamo per scorrere la lista di attributi di un nodo, è usando la funzione next di un iteratore assegnato a quella lista giusto? <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 03 May 2007 --- ---+++++ Re: Re: Re: enum OP_ERRORS ambe e' vero Mastro pure te c'hai ragione . . . <verbatim> </verbatim> -- %MAINWEB%.GabrieleIoannucci - 03 May 2007 --- ---++++++ Re: Re: Re: enum OP_ERRORS? e per fortuna che hai preso 30L a primo esonero!!!!:-) Se beccamo a lezione <verbatim> </verbatim> -- %MAINWEB%.AlessandroMastropietro - 03 May 2007 --- ---+++ Valore di ritorno della funzione "get_node_type" Buonasera Professore. Facendo dei test a tappeto mi sono posto il problema del valore di ritorno della funzione "get_node_type". Secondo le specifiche, deve ritornare il tipo del nodo passato in input, quindi TEXT_NODE o TAG_NODE. Ma se il puntatore al nodo n fosse NULL cosa dovrebbe ritornare? E' un'eventualità non possibile (il test lo fa la funzione chiamante?) e quindi da non testare? Grazie mille. <verbatim> </verbatim> -- %MAINWEB%.AndreaMencaroni - 03 May 2007 --- ---+++ dubbio nel main per get_attributo Salve a tutti, non so se questa domanda e' stata gia' fatta, non ho avuto tempo di rileggere attentamente tutte le domande poste!!! Ho un dubbio per quello che riguarda la funzione get_attributo in main2b.c: Perche' la funzione get_attributo deve andare a vedere in t1 l'attributo "a1", se presente, se gli andiamo a far visitare t4? Nel senso, la funzione deve andare a controllare t1 perche' gli passiamo "a1", e precedentemente a t1 gli avevamo passato "a" oppure e semplicemente un errore di scrittura nella printf del main2b.c??? Tanti saluti a presto... Stefano Caruso <verbatim> if (get_attributo(t4, "a1", &valore) == OP_NO_ATTRIBUTE_ERROR) printf("non c'e' l'attributo a1 in t1 (ok)\n"); else printf("c'e' l'attributo a1 in t1 (problema)\n"); </verbatim> -- %MAINWEB%.StefanoCaruso - 04 May 2007 --- ---+++ inizializzazione liste di NEW_TEXT_NODE e NEW_TAG_NODE Salve, nell'inizializzare i campi list dei nodi in queste funzioni dobbiamo usare la funzione new_list(list*)??ma come se questa richiede come parametro un list* mentre abbiamo un list nella nostra struttura nodo?? <verbatim> </verbatim> -- %MAINWEB%.AntonioMiranda - 04 May 2007 --- ---++++ Re: tutte le ultime domande Ragazzi, venite lunedì a lezione così discutiamo i vari problemi. La lezione è strettamente correlata al progetto. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 04 May 2007 --- ---+++++ Re: Re: tutte le ultime domande Scusi professore,ma io non seguo,non sono a Roma e non posso venire a lezione,potrebbe chiarire il mio dubbio? <verbatim> </verbatim> -- %MAINWEB%.AntonioMiranda - 05 May 2007 --- ---++++ Re: funzioni in tempo costante GianclucaSquarcia è cos' difficile riuscire a ottenere tempo costante? nella add_first come riesci ad ottenerlo? non potresti fare in modo che la add_last si comporti allo stesso modo? guarda che se ci pensi un attimo è facile! <verbatim> </verbatim> -- %MAINWEB%.SimoneMori - 05 May 2007 --- ---++++ Re: inizializzazione liste di NEW_TEXT_NODE e NEW_TAG_NODE Questo non è un problema di progetto, è un problema di puntatori. Consiglio un bel ripasso... <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 05 May 2007 --- ---+++ main della prima parte ciao, per far stampare anke la "e" ho dovuto aggiungere una printf dopo il ciclo di stampa. è un errore mio o del main? <verbatim> while(has_next(i)) { char *s = (char *)next(i); printf("%s,", s); } char *s = (char *)next(i); printf("%s,", s); </verbatim> -- %MAINWEB%.StefanoGuglielmo - 05 May 2007 --- ---+++ NON ARRIVA LA MAIL DI CONFERMA DELLA CONSEGNA c'è qualche motivo per cui non arriva la conferma? ho provato più volte... <verbatim> </verbatim> -- %MAINWEB%.SimoneMori - 05 May 2007 --- ---++++ Re: main della prima parte Stefano è un errore tuo.. nella funzione has_next prova a verificare che "list" != NULL e non "list"->next :-) <verbatim> </verbatim> -- %MAINWEB%.FlavioPietrelli - 05 May 2007 --- ---+++ Inserire Valori Nei Nodi Salve a tutti. Ho un problema nelle funzioni di creazione dei nodi new_text_node e new_tag_node: ottengo un errore di segmentation fault quando tento di accedere ad uno dei campi della struttura node, come nell'esempio di codice qui riportato (l'errore vale per qualunque campo della struttura puntata da node). Evidentemente mi sfugge qualcosa..e ora come ora non capisco cosa! :) <verbatim> int new_tag_node(node *n, char *name) { //controllo che gli argomenti passati siano corretti (*n)->type=TAG_NODE; </verbatim> -- %MAINWEB%.ElenaAgostini - 05 May 2007 --- ---++++ Re: Inserire Valori Nei Nodi Elena devi allocare la struttura node prima... <verbatim> </verbatim> -- %MAINWEB%.GiuseppeSantaMariaSosso - 06 May 2007 --- ---++++ Re: NON ARRIVA LA MAIL DI CONFERMA DELLA CONSEGNA In effetti il suo progetto non è arrivato. Può provare con un'altra email? Oppure riprovare. Ho appena provato il form e funziona tutto bene. Accertatevi che sia caricata la pagina successiva dove viene detto che "la consegna è avvenuta correttamente" e che l'email inserita sia corretta. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 06 May 2007 --- ---+++ main2b.c ---- warning: implicit declaration of function ‘strcmp’ Salve professore, stavo compilando il main2b.c e ho notato che da un warning. Esso si riferisce al fatto che nel main non viene incluso <string.h>. Il file string.h lo includo nel file xsml_node.c. Volevo sapere se devo includerlo nel main2b.c o verra' incluso poi da voi per eseguire i test. <verbatim> if (get_attributo(t4, "a1", &valore) == OP_NO_ATTRIBUTE_ERROR) printf("non c'e' l'attributo a1 in t4 (problema)\n"); else { printf("c'e' l'attributo a1 in t4 (ok)\n"); --> if (!strcmp(valore, "10")) printf("il suo valore e' \"10\" (ok)\n"); else printf("il suo valore e' != \"10\" (problema)\n"); } </verbatim> -- %MAINWEB%.MarcoRotiroti - 06 May 2007 --- ---+++ Accesso elementi struttura con puntatore void Ho una domanda.. utilizzando la struttura e il puntatore void ptr riportati sotto, come è possibile accedere agli elementi della struttura? Facendo ptr = prova; e poi ptr->a; dice che "a" nn è un elemento di una struttura o di un'unione, lo stesso utilizzando un cast tipo: (prova *)ptr = prova; Grazie <verbatim> void * ptr; typedef struct prova *prova; struct prova { char * a; char b; }; </verbatim> -- %MAINWEB%.FlavioPietrelli - 06 May 2007 --- ---+++ Set_attributo Segmentation fault Salve professore, innanzitutto vorrei scusarmi per la domanda fattagli in precedenza..aveva perfettamente ragione,sono stato piuttosto sciocco.Ora ho completato i file però nel testarli tramite il main2b mi succede questo:la funzione set_attributo funziona perfettamente invocata sul primo nodo(nodo t4 nel main),anche invocandola più volte e facendo dei test che verifichino il corretto valore dei parametri settati,ma chiamandola su un secondo nodo,quale è t5,il programma mi da un errore di segmentation fault.Premetto ke compilo con djgpp su windows xp.Di quale tipo potrebbe essere l'errore?Se fosse dovuto ai puntatori,non dovrebbe ripetersi allo stesso modo per ogni chiamata?Perchè questo errore si presenta solo qualora cambio nodo?? <verbatim> </verbatim> -- %MAINWEB%.AntonioMiranda - 06 May 2007 --- ---+++ problemi con il main2a.c io ho fatto le mie strutture list e iterator con le relative funzioni. faccio vari esperienti sulle liste e funziona. Il problema è che non riesco a capire come funziona questa riga di codice del main (vedi sotto). come fa a funzionare questa conversione? La mia struttura iterator (potendola fare come preferiamo) ha al suo interno un solo campo, che è un puntatore a liste. come faccio a far copiare in *s una stringa, tramite la funzione next(i) ?? confido nella risposta di qualcuno. grazie <verbatim> char *s = (char *)next(i); </verbatim> -- %MAINWEB%.JacopoSciarra - 06 May 2007 --- ---++++ Re: main2a.c vorrei aggiungere che la funzione next(i) dentro al ciclo while mi funziona perche fa scorrere l'iteratore in avanti, infatti la lunghezza della lista è giusta. solo che mi stampa 5 caratteri errati invece di quelli giusti.. aiuto!! <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 06 May 2007 --- ---++++ Re: problemi con il main2a.c la funzione next(i) ritorna un puntatore a void.per eseguire questa assegnazione ad s che è un puntatore a char devi fare un casting...questo è il motivo per cui c'è (char*). spero di essere stato chiaro nella spiegazione <verbatim> </verbatim> -- %MAINWEB%.StefanoGuglielmo - 06 May 2007 --- ---++++ Re: (senza titolo) si.. capisco che serve il casting.. pero non riesco a capire come avviene la conversione dal tipo iteratore a stringa.. considerando che ognuno puo aver fatto l'iteratore con una struttura diversa.. non riesco a capire infatti prche mi stampa dei carattari strani.. <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 06 May 2007 --- ---+++ main2a.c stando strettamente alle specifiche la funzione next ritorna il PROSSIMO elemento e non quello corrente. Quindi usando il file main2a.c non stamperà mai il primo carattere (cioe "a") ma partirà dal secondo. A meno che non si faccia la funzione in modo tale che ritorna il valore corrente ma che contemporanemante sposti l'iteratore al successivo elemento. Io l'avrei fatto in tutti e due i modi ma qual'è il modo giusto di procedere? <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 07 May 2007 --- ---+++ Funzione IsEmpty Sarebbe possibile modificare le specifiche della funzione in oggetto e piu' precisamente i valori di ritorno per ritornare anche dei codici di errore per valori diversi da 0 ed 1 ? <verbatim> </verbatim> -- %MAINWEB%.AlbertoRivelli - 07 May 2007 --- ---++++ Re: main2b.c ---- warning: implicit declaration of function ‘strcmp’ Sì, non vi preoccupate. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 07 May 2007 --- ---++++ Re: Accesso elementi struttura con puntatore void Non riesco a capire proprio la domanda. Come faccio a fare ptr = prova?? <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 07 May 2007 --- ---++++ Re: Set_attributo Segmentation fault Antonio, sembra un problema di puntatori e accesso a memoria non allocata. Questi problemi sono i più difficili da scovare proprio perché il comportamento non è mai lo stesso (dipende da come è disposta la memoria in quel momento se vado o no a scrivere in una zona di memoria non libera). <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 07 May 2007 --- ---++++ Re: main2a.c Jacopo, la funzione next restituisce il prossimo elemento valido, quindi nella situazione iniziale restituisce il primo elemento, non il secondo!!! <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 07 May 2007 --- ---++++ Re: Funzione IsEmpty No, non potete modificare i prototipi, nel modo più assoluto. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 07 May 2007 --- ---+++ attributes non ho capito bene se il campo attributes deve essere una lista di nodi attributi, se cosi fosse i valori li devo mettere nel campo attributes del nodo attribute??? <verbatim> </verbatim> -- %MAINWEB%.ValerioMassimi - 08 May 2007 --- ---+++ set_attributo, get_attributo e TXT_NODE + altro 3 domande: - Un nodo di tipo TXT non ha attributi. La set_attributo o la get_attributo di un nodo di tipo TXT deve quindi esser considerata OP_GENERIC a priori? - sembra dal main di esempio che il doppio puntatore char** value nella get_attribute debba puntare a un vettore di caratteri inizializzato DENTRO la get_attribute con la malloc, è così? domanda meno legata al modulo specifico: - nei moduli successivi dovremo riutilizzare il codice scritto da noi nei moduli precedenti? Nel mio caso non avendo fatto il modulo1 è necessario che lo svolga anche senza consegnarlo? Grazie in anticipo, Luca Lollobrigida <verbatim> </verbatim> -- %MAINWEB%.LucaLollobrigida - 08 May 2007 --- ---++++ Re: attributes Valerio, attributes è una lista con puntatori void. ogni nodo di Attributes deve avere un nome e un valore. il tipo di dato "nodo attributo" che contiene nome e valore non esiste. <verbatim> </verbatim> -- %MAINWEB%.SimoneMori - 08 May 2007 --- ---+++++ Re: Re: attributes professore, il tipo di dato "nodo attributo" naturalmente dobbiamo farlo noi?? altrimenti ho sbagliato. <verbatim> </verbatim> -- %MAINWEB%.MarcoMarinangeli - 08 May 2007 --- ---+++ puntatore? ho notato che in main2a.c, riga 6 c'è una dichiarazione di variabile di tipo list che poi alla riga 26 passa alla get iterator, che in realtà si aspetta un puntatore... è normale? grazie <verbatim> </verbatim> -- %MAINWEB%.MirkoSquitieri - 08 May 2007 --- ---++++ Re: Funzione IsEmpty ...non è proprio una modifica, è soltanto dire che solamente 1 è vero e non tutto ciò che è diverso da zero <verbatim> </verbatim> -- %MAINWEB%.AlbertoRivelli - 08 May 2007 --- ---++++ Re: puntatore? ops mi correggo, la get iterator si aspetta proprio un dato di tipo list. ora il problema è proprio questo... :) <verbatim> </verbatim> -- %MAINWEB%.MirkoSquitieri - 08 May 2007 --- ---+++ TEXT_NODE Mi chiedevo perchè il text_node debba avere dei children ? <verbatim> </verbatim> -- %MAINWEB%.AlbertoRivelli - 08 May 2007 --- ---+++ risultati && main2b.c t1 text node ??? Salve prof, innanzitutto le volevo chiedere se i risultati del primo modulo usciranno prima della consegna del secondo. Poi ho notato che nel main2b.c t1 (che e' inizializzato come TEXT_NODE) viene chiamato come argomento di get_attributo e set_attributo. Cosa dobbiamo fare? Se consentiamo che un TEXT_NODE abbia in via eccezionale qualcosa dentro list attributes il main stampa allora anche l'ultimo controllo sull'attributo a1 (dicendo ok a1 = 10), altrimenti ritoriniamo l'errore ma il main non stampa l'ultimo controllo e ritorna (nel mio caso) OP_NO_ATTRIBUTE_ERROR. Come ci dobbiamo comportare? Grazie <verbatim> </verbatim> -- %MAINWEB%.MatteoLatini - 08 May 2007 --- ---++++ Re: risultati && main2b.c t1 text node ??? matteo ti rispondo io. devi scaricarti il main aggiornato. <verbatim> </verbatim> -- %MAINWEB%.MarcoMarinangeli - 09 May 2007 --- ---+++ list attributes il tipo di dato che mettiamo dentro la lista attributes deve essere definito da noi? per adesso io ho usato la struttura nodo per memorizzare gli attributi ma non sono caonvinto sia la strada giusta. <verbatim> </verbatim> -- %MAINWEB%.ValerioMassimi - 09 May 2007 --- ---+++ problemone con la set_attribute non riesco a far funzinare la set_attribute. da quello che ho capito questa funzione va a scorrere la lista attributes del nodo n. se trova un elemento cha ha il campo nome uguale a *attribute, ne sovrascrive il campo valore con *value. altrimenti crea un nuovo elemento di tipo attributo e lo aggiunge alla lista. tutto chiaro. il problema è che quando vado a inserire il nuovo nodo nella lista, inspiegabilmente, la funzione mi sovrascrive tutti i precedenti nodi e mi viene fuori una lista con tutti gli elementi (di tipo attributo) uguali!!! non riesco a capire il motivo. la funzione tecnicamente è semplice. la funzione add_first o add_last l'ho testata e funziona correttamente. eppure è l'unica funzione che utilizzo dentro alla set... cosa puo esserci d sbagliato?? sono quasi alla disperazione!!!!!!!! <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 09 May 2007 --- ---++++ Re: problemone con la set_attribute sembrerebbe che l'if dentro il ciclo che scorre la lista di attributi dia sempre true per questo sovrascrivi tutti gli elementi ogni volta...magari è tutt'altra cosa...ma per me è sbagliato quel controllo.... <verbatim> </verbatim> -- %MAINWEB%.GianlucaSquarcia - 09 May 2007 --- ---+++ Linkare Dal momento che xsml_node.c utilizza le funzioni implementate in xsml_list.c.... ci pensate voi a "linkare" al file xsml_node.c il file xsml_list.c e l'eventuale main??? noi dobbiamo solo implementare le funzioni richieste senza aggiungere nient'altro giusto??? <verbatim> </verbatim> -- %MAINWEB%.VincenzoNovino - 09 May 2007 --- ---+++ Linkare Esattamente. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 10 May 2007 --- ---+++ Problema di Execute e di Debug. Premetto che uso winXP e compilo con MinGW Developer Studio. Il problema è il seguente, quando vado ad Eseguire il programma .EXE compilato dal mainA visualizza tutto fino alla D (ho provato ad aggiungere altre chiamate ma dopo la D per lui la lista è vuota) mentre con il Debug funziona tutto alla perfezione. La stessa cosa succede con il mainB solo che addirittura mi dice "il programma ha eseguito una operazione nn valida" e si termina con valore 1 (non ho abbastanza memoria per far girare un programmino?). Con il Debug gira perfettamente anche il mainB. Non credo sia problema di allocazione della memoria, è stranissimo e mi è gia' capitato nel modulo 1 (sembrava nn calcolasse la free). Devo cambiare compilatore oppure sono io che sto commettendo degli errori? <verbatim> </verbatim> -- %MAINWEB%.LucaGiardina - 10 May 2007 --- ---++++ Re: Problema di Execute e di Debug. Luca purtroppo sembra che all'università non viene minimamente calcolato insegnare il debug o ancora peggio valgrind....cmq il tuo problema non è nel compilatore è nel codice infatti sono sicuro che non hai allocato (oppure hai fatto qualche free di troppo) e le tue variabili stanno lì in memoria che "muoiono" per indeterminazione (cioè non sai quando verranno cancellate e quindi sono inutilizzabili perchè non sono affidabili). Se magari butti sto cazzo di xp ti fai pure un favore, infatti su linux c'è valgrind che è un programma (simile ma non proprio a un debugger) che serve proprio a trovare errori di questo tipo. Anzi visto che nessuno qua ce lo spiega vi dico il comando principale: valgrind --leak-check=full --show-reachable=yes ./main e con questo controllate oltre agli errori, anche le "perdite" di memoria ovvero la memoria che allocate e non liberate. Se invece la memoria non vi interessa (visto che noi non sappiamo che vuol dire free()): valgrind --leak-check=no ./main occhio che il main è l'eseguibile!!!! <verbatim> </verbatim> -- %MAINWEB%.MatteoLatini - 10 May 2007 --- ---+++++ Re: Re: problemone con la set_attribute non puo essere il contrllo if, perche quando fa il contrllo if, se lotrova positivo non aggiunge un nodo, ma sovrascrive solo quello preso in esmae dall'if. e infatti cosi fa. quando invece il contrllo è negativo, deve mettere un altro nodo. ed è qui il problema. invece di inserirlo e basta (in testa o in coda) mi sovrascrive anche tutti gli altri. non riesco a capire perche si comporta cosi, visto che l'unica cosa che usa, in pratica è la add_first, che ho testato in tutti i modi e funziona correttamente.. <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 10 May 2007 --- ---++++++ Re: Re: Re: problemone con la set_attribute gdb <verbatim> </verbatim> -- %MAINWEB%.MatteoLatini - 10 May 2007 --- ---++++ Re: set_attributo, get_attributo e TXT_NODE? + altro 1) sarebbe buona norma farlo, 2) sì, 3) no, vi forniremo le nostre implementazioni <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 10 May 2007 --- ---++++ Re: list attributes Sì, dovete definirlo voi!!! node non c'entra niente... <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 10 May 2007 --- ---+++ Funzioni in tempo costante Ho finito il progetto, ma non ho considerato il fatto delle funzioni in tempo costante. Qualcuno potrebbe consigliarmi un manuale o una guida online che spieghi in modo semplice come ottenerle? grazie <verbatim> </verbatim> -- %MAINWEB%.MarcoMarinangeli - 10 May 2007 --- ---++++ Re: Funzioni in tempo costante Non c'è bisogno di un manuale: basta realizzare le due funzioni add_first e add_last il modo che non scorrano l'intera lista per inserire un elemento in test o in coda rispettivamente. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 10 May 2007 --- ---+++ Errore da trattare? Devo trattare i possibili errori che si otterrebbero passando alle funzioni che ricevono una lista come argomento (es: add_first) una lista non iniziallizata mediante la funzione new_list? Oppure considero che se viene passata una lista e` sempre inizializzata a NULL od ha almeno un elemento? <verbatim> </verbatim> -- %MAINWEB%.ManueleTamburrano - 10 May 2007 --- ---+++ Problema in struct node Ho dichiarato così il tipo di dato list: typedef struct list_node *list ora il problema è che se lascio la struct node come l'avete implementata voi (caso 1) delle volte mi da un errore in compilazione: mi dice "error before 'list'","no semicolon at end of struct". Se invece utilizzo il modo 2 non ho problemi eppure dovrebbero essere equivalenti. A)Da cosa può dipendere?? B)Posso implementare la struct node come il caso 2???? <verbatim> 1) struct node { char *name; node_type type; list attributes; list children; } ; 2) struct node { char *name; node_type type; struct list_node *attributes; struct list_node *children; } ; </verbatim> -- %MAINWEB%.MarcoMarinangeli - 10 May 2007 --- ---++++ Re: Errore da trattare? Dove è possibile restituire il codice d'errore, sarebbe bene farlo. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 10 May 2007 --- ---++++ Re: Problema in struct node *Attenzione:* Non devo ridefinire il tipo list!!!! Il tipo list viene definito *solo* in xsml_list.h. Non devo definire un tipo list *ad hoc* per i nodi...<br> <br> Comunque il problema sembra essere dovuto al fatto che typedef si trova dopo la struttura. Non vedo altre possibilita'. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 10 May 2007 --- ---+++++ Re: Re: Problema in struct node La mia typedef struct list_node *list non è ad hoc per i nodi..è quella che utilizzo per le liste ed è dichiarata in xsml_list.h. Forse quando il prog. non funziona è perchè prova a compilare il file xsml_node.h prima di xsml_list.h non riconoscendo il tipo "list".. posso modificare il tipo node mettendo "struct list_node *attributes" al posto dell'equivalente (alemno dovrebbe) "list attributes"?? <verbatim> </verbatim> -- %MAINWEB%.MarcoMarinangeli - 10 May 2007 --- ---++++++ Re: Re: Re: Problema in struct node Non si può!!! Il tipo list deve essere quello originario, non posso modificarlo. Non vedo dove sia il problema. Semplicemente includo prima xsml_list.h e quindi definisco struct node { ... } che ha due liste di tipo list tra i suoi campi... Se il problema è l'inclusione multipla dello stesso file .h, basta utilizzare le direttive del preprocessore: #ifdef, #define, #endif (come abbiamo fatto nel definire xsml_lex.h nel modulo 1). <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 10 May 2007 --- ---++++++ Re: Re: Re: Problema in struct node Professore penso di aver risolto. Penso che il mio problema era dovuto al fatto che includevo xsml_node.h nel file xsml_list.h. quindi il compilatore andava a vedere prima xsml_node.h e trovava questo tipo list non ancora dichiarato. Grazie molte per la disponibilità. <verbatim> </verbatim> -- %MAINWEB%.MarcoMarinangeli - 10 May 2007 --- ---+++++ Re: Re: Funzioni in tempo costante professore, per implementare la funzione add_last in modo da eseguirla in tempo costante, ho usato una variabile di classe static che mantiene il puntatore alla coda. questo metodo va bene solo se però non vengono eseguite cancellazioni, e secondo le specifiche non sono previste... è un modo corretto di fare o devo trovare un altro metodo? <verbatim> </verbatim> -- %MAINWEB%.StefanoGuglielmo - 10 May 2007 --- ---+++++ Re: Re: Errore da trattare? ok, ma il problema e` questo: come fa una funzione a capire se il contenuto di l e` un list o un dato casuale assegnatogli dlla dichiarazione? Per assurdo l potrebbe anche contenere NULL o una struct list, quindi i controlli fatti su l risulterebbero errati. Il C permette in qualche modo di controllare se un dato e` stato solo dichiarato e non inizializzato o qualcosa del genere? <verbatim> </verbatim> -- %MAINWEB%.ManueleTamburrano - 10 May 2007 --- ---+++ Funzione add_last Forse la mia domanda è banale ma volevo sapere se la funzione add_last deve inserire un elemento anche se la lista è vuota. <verbatim> </verbatim> -- %MAINWEB%.GioacchinoMendola - 10 May 2007 --- ---+++ op_errors la maggior parte delle funzioni da implementare ritornano un OP_OK o un errore vorrei chiedere come gestire i casi d'errore.... se ad esempio i puntatori passati alle varie funzioni anziche puntare alle locazioni utili puntano a NULL posso retstituire OP_GENERIC giusto??? poi quale altri errori possono verificarsi???(tralasciando OP_NO_ATTRIBUTE_ERROR, che lo usiamo solo in get attribute)Si devono gestire altre situazioni d'errore???Quali potrebbero essere i casi in cui usiamo OP_MEM_ERROR??? grazie <verbatim> </verbatim> -- %MAINWEB%.VincenzoNovino - 10 May 2007 --- ---+++ MainA e MainB Finalmente ho risolto il problema con la compilazione. Adesso però ne è sorto un altro.. quando compilo con il MainA lui passa come nodi della lista dei (void *)char che nn sono contenuti in nessun puntatore e quindi ho bisogno di allocare e copiare i dati nella lista.. nel MainB io passo alla lista dei puntatori a struttura che aggiungo tramite il puntatore.. sto sbagliando qualcosa nell'implementazione oppure è giusto che funzioni solo il MainB dopo l'implementazione di xsml_node.c? <verbatim> </verbatim> -- %MAINWEB%.LucaGiardina - 10 May 2007 --- ---++++ Re: op_errors mem_error è subordinato alla malloc/calloc che sia.. quando hai allocato memoria al puntatore restituisce NULL se è finita. <verbatim> if(!punt=mall bla bla bla) return op_mem_erccecc. </verbatim> -- %MAINWEB%.LucaGiardina - 10 May 2007 --- ---+++ Come ritorno gli errori in casi particolari? Salve a tutti. Per le funzioni che non ritornano un intero, ma un puntatore, come devo comportarmi per controllare errori che si possono presentare?Ritorno comunque un intero oppure uso una exit?Non posso tralasciare certi errori..altrimenti avrei dei segmentation fault. <verbatim> </verbatim> -- %MAINWEB%.ElenaAgostini - 10 May 2007 --- ---+++ Come ritorno gli errori in casi particolari? Salve a tutti. Per le funzioni che non ritornano un intero, ma un puntatore, come devo comportarmi per controllare errori che si possono presentare?Ritorno comunque un intero oppure uso una exit?Non posso tralasciare certi errori..altrimenti avrei dei segmentation fault. <verbatim> </verbatim> -- %MAINWEB%.ElenaAgostini - 10 May 2007 --- ---++++ Re: Funzioni in tempo costante Non è un metodo corretto: impedisce di lavorare su più liste contemporaneamente!!! <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 10 May 2007 --- ---++++ Re: Funzioni in tempo costante Non è un metodo corretto: impedisce di lavorare su più liste contemporaneamente!!! <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 10 May 2007 --- ---++++++ Re: Re: Re: Errore da trattare? No, non c'è nessun modo in C di controllare ciò. Non vi preoccupate troppo di questi problemi, è responsabilità anche del chiamante. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 10 May 2007 --- ---++++ Re: Funzione add_last Sì. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 10 May 2007 --- ---++++ Re: Come ritorno gli errori in casi particolari? Elena, quando non e' previsto di restituire un codice d'errore si puo' agire come si crede: lasciare che il segmentation fault venga emesso oppure stampare l'errore e uscire. <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 10 May 2007 --- ---+++++ Re: Re: Come ritorno gli errori in casi particolari? quindi posso scrivere un qualcosa come nel codice riportato sotto? <verbatim> if(i == NULL) { fprintf(stderr, "Errore di allocazione della memoria\n"); exit(-1); } </verbatim> -- %MAINWEB%.ElenaAgostini - 11 May 2007 --- ---+++ conflitto sul typedef 118 j:\modulo2\second~1.cpp conflicting types for `typedef struct node * node' in fase di compilazione, mi da problemi se uso NODE come nome del tipo puntatore alla struct node. Che faccio? <verbatim> </verbatim> -- %MAINWEB%.ManueleTamburrano - 11 May 2007 --- ---++++ Re: conflitto su typedef Se il problema *non* è colpa sua, quando compileremo con gcc non ci sarà questo conflitto (cio' significherebbe che il suo compilatore utilizza delle librerie predefinite dove *node* e' gia' definito). Se invece il problema e' suo, allora viene caricata due volte la definizione di node per qualche ragione (problema importante). Consiglio di compilare con gcc sotto linux o sotto windows (DJGPP). <verbatim> </verbatim> -- %MAINWEB%.RobertoNavigli - 11 May 2007 --- ---+++ nome del file da consegnare leggo nella pagina della consegna che il nome va chiamato modulo.tar.gz va bene cosi o va chiamato modulo2.tar.gz ?? scusate la pignoleria ma non si sa mai... <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 11 May 2007 --- ---++++ Re: nome del file da consegnare credo sia indifferente (io l'ho chiamato diversamente), tanto alla consegna ho visto che viene modificato e zippato con il tuo nome twiki. <verbatim> </verbatim> -- %MAINWEB%.VladLupascu - 11 May 2007 --- ---++++ Re: nome del file da consegnare si infatti.. pero non si sa mai.. non vorrei buttare ore di lavoro per una sciocchezza.. <verbatim> </verbatim> -- %MAINWEB%.JacopoSciarra - 11 May 2007 --- ---+++ MODULO III Prof. oggi lo mette il terzo modulo online? <verbatim> </verbatim> -- %MAINWEB%.MarcoMarinangeli - 15 May 2007 --- ---+++ 3 Modulo. Buonasera, non sono potuto essere presente alla lezione di lunedì. Volevo sapere quando sarà possibile avere le specifiche del 3°modulo? I risultati dei precedenti due moduli, quando saranno disponibili? Saluti, RigersYlli <verbatim> </verbatim> -- %MAINWEB%.RigersYlli - 15 May 2007 --- %COMMENT{type="thread"}% <a name="LaForm"></a> * Se usate dei titoli comprensibili ci capiamo tutti un po' meglio * Ricordatevi di chiudere i tag che inserite nei post. * Non partite con i flame, c'è una pagina apposta per gli OffTopic. -- Users.RobertoNavigli - 23 Apr 2007
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r156
<
r155
<
r154
<
r153
<
r152
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r156 - 2007-05-15
-
RigersYlli
Log In
or
Register
Labprog2 Web ...
Labprog2 Web
Labprog2 Web Home
Users
Groups
Index
Search
Changes
Notifications
Statistics
Preferences
User Reference ...
User Reference
ATasteOfTWiki
TextFormattingRules
TWikiVariables
FormattedSearch
TWikiDocGraphics
TWikiSkinBrowser
InstalledPlugins
ChangeEmailAddress
ChangePassword
ResetPassword
Prenotazioni esami
Laurea Triennale ...
Laurea Triennale
Algebra
Algoritmi
Introduzione agli algoritmi
Algoritmi 1
Algoritmi 2
Algoritmi per la
visualizzazione
Architetture
Prog. sist. digitali
Architetture 2
Basi di Dati
Basi di Dati 1 Inf.
Basi di Dati 1 T.I.
Basi di Dati (I modulo, A-L)
Basi di Dati (I modulo, M-Z)
Basi di Dati 2
Calcolo
Calcolo differenziale
Calcolo integrale
Calcolo delle Probabilitą
Metodi mat. per l'inf. (ex. Logica)
canale AD
canale PZ
Programmazione
Fond. di Programmazione
Metodologie di Programmazione
Prog. di sistemi multicore
Programmazione 2
AD
EO
PZ
Esercitazioni Prog. 2
Lab. Prog. AD
Lab. Prog. EO
Lab. Prog. 2
Prog. a Oggetti
Reti
Arch. di internet
Lab. di prog. di rete
Programmazione Web
Reti di elaboratori
Sistemi operativi
Sistemi Operativi (12 CFU)
Anni precedenti
Sistemi operativi 1
Sistemi operativi 2
Lab. SO 1
Lab. SO 2
Altri corsi
Automi, Calcolabilitą
e Complessitą
Apprendimento Automatico
Economia Aziendale
Elaborazione Immagini
Fisica 2
Grafica 3D
Informatica Giuridica
Laboratorio di Sistemi Interattivi
Linguaggi di Programmazione 3° anno Matematica
Linguaggi e Compilatori
Sistemi Informativi
Tecniche di Sicurezza dei Sistemi
ACSAI ...
ACSAI
Computer Architectures 1
Programming
Laurea Magistrale ...
Laurea Magistrale
Percorsi di studio
Corsi
Algoritmi Avanzati
Algoritmica
Algoritmi e Strutture Dati
Algoritmi per le reti
Architetture degli elaboratori 3
Architetture avanzate e parallele
Autonomous Networking
Big Data Computing
Business Intelligence
Calcolo Intensivo
Complessitą
Computer Systems and Programming
Concurrent Systems
Crittografia
Elaborazione del Linguaggio Naturale
Estrazione inf. dal web
Fisica 3
Gamification Lab
Information Systems
Ingegneria degli Algoritmi
Interazione Multi Modale
Metodi Formali per il Software
Methods in Computer Science Education: Analysis
Methods in Computer Science Education: Design
Prestazioni dei Sistemi di Rete
Prog. avanzata
Internet of Things
Sistemi Centrali
Reti Wireless
Sistemi Biometrici
Sistemi Distribuiti
Sistemi Informativi Geografici
Sistemi operativi 3
Tecniche di Sicurezza basate sui Linguaggi
Teoria della
Dimostrazione
Verifica del software
Visione artificiale
Attivitą complementari
Biologia Computazionale
Design and development of embedded systems for the Internet of Things
Lego Lab
Logic Programming
Pietre miliari della scienza
Prog. di processori multicore
Sistemi per l'interazione locale e remota
Laboratorio di Cyber-Security
Verifica e Validazione di Software Embedded
Altri Webs ...
Altri Webs
Dottorandi
Commissioni
Comm. Didattica
Comm. Didattica_r
Comm. Dottorato
Comm. Erasmus
Comm. Finanziamenti
Comm. Scientifica
Comm Scientifica_r
Corsi esterni
Sistemi Operativi (Matematica)
Perl e Bioperl
ECDL
Fondamenti 1
(NETTUNO)
Tecniche della Programmazione 1° modulo
(NETTUNO)
Seminars in Artificial Intelligence and Robotics: Natural Language Processing
Informatica generale
Primo canale
Secondo canale
II canale A.A. 10-11
Informatica
Informatica per Statistica
Laboratorio di Strumentazione Elettronica e Informatica
Progetti
Nemo
Quis
Remus
TWiki ...
TWiki
Tutto su TWiki
Users
Main
Sandbox
Home
Site map
AA web
AAP web
ACSAI web
AA2021 web
Programming web
AA2021 web
AN web
ASD web
Algebra web
AL web
AA1112 web
AA1213 web
AA1920 web
AA2021 web
MZ web
AA1112 web
AA1213 web
AA1112 web
AA1314 web
AA1415 web
AA1516 web
AA1617 web
AA1819 web
Old web
Algo_par_dis web
Algoreti web
More...
Labprog2 Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
P
P
P
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Register User
Questo sito usa cookies, usandolo ne accettate la presenza. (
CookiePolicy
)
Torna al
Dipartimento di Informatica
E
dit
A
ttach
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback