.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Filez (http://www.dsy.it/forum/forumdisplay.php?forumid=25)
-- Mappe - sorgenti (http://www.dsy.it/forum/showthread.php?threadid=24001)


Posted by ornati on 07-02-2006 18:21:

Mappe - sorgenti

Questi sono i sorgenti del mio progetto Mappe.

Il programma in generale è corretto (o almeno sembra :) però voglio chiarire una cosa. La funzione per l'inserimento nella tabella a doppio hash NON funziona sempre correttamente: è infatti possibile, in certe condizioni, che inserendo una chiave già presente non avvenga la sovrascrittura... PERO' questo non avviene mai per come la hash table viene utilizzata.

Diciamo che è un BUG latente...

Probabilmente era meglio implementare la hash table in modo + semplice (risoluzione collisioni mediante liste).

Per quanto riguarda MapTree si può migliorare in 2 modi:
- implementando il "ricompattamento" dell'albero
- sbarazzandosi dell'allocazione dinamica per la gestione delle stringhe (non entro nei dettagli altrimenti mi dilungo).

COMPILAZIONE (se usate un sistema operativo serio):

mkdir mappe
cd mappe
tar xf ../ornati.tar
make


Per i Windowsiani: non conosco tale sistema(?) operativo(?) :)


Posted by maynard80 on 07-02-2006 19:50:

beh direi che visto i tempi di esecuzione sei un mago, spero che parteciperai alla discussione del nuovo progetto

__________________
msn Messenger: giamma80 at tiscali.it
ATHENA !


Posted by ornati on 07-02-2006 20:26:

Originally posted by maynard80
beh direi che visto i tempi di esecuzione sei un mago, spero che parteciperai alla discussione del nuovo progetto


No. Se fossi stato un mago avrei chiamato la funzione "hash_get(key)" con il nome "accio_valore(key)" ;) (per chi non l'ha capita: leggi "Harry Potter e il Calice di Fuoco").

A parte gli scherzi: ho solo speso un po' di tempo a pensare alle strutture dati invece di iniziare subito a programmare.


Perchè dovrei partecipare alla discussione del nuovo progetto dato che ho appena passato l'esame?

Forse dovrei sviluppare la mia versione e metterla nella sezione Filez in tempo utile ??
Ho sentito dire che è simile...

:-)


Posted by darkAntAreS on 07-02-2006 23:01:

non so quanto sia riutilizzabile, ma io un'occhiata gliela darò...al limite mi faccio un'idea ;)

__________________
"Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk agh burzum-ishi krimpatul"


Posted by ornati on 08-02-2006 07:47:

Per aiutare la comprensione del mio codice allego la relazione.

PS: mi sono accorto che nell'analisi della complessità computazionale delle varie operazioni non tengo conto della gestione delle stringhe (pezzi di specifica) associate ad ogni nodo dell'albero....


Posted by tyzer on 08-02-2006 10:12:

Unhappy

Scusate la mia enorme ignoranza in materia...ma le tabelle hash quando mai le ha spiegate Goldwurm o Aguzzoli??
Nei lucidi delle lezioni non le ho viste...:?


Posted by ornati on 08-02-2006 11:14:

Originally posted by tyzer
Scusate la mia enorme ignoranza in materia...ma le tabelle hash quando mai le ha spiegate Goldwurm o Aguzzoli??
Nei lucidi delle lezioni non le ho viste...:?


Io sono (ero) con Torelli e cmq il concetto di tabella di hash è abbastanza semplice (la mia implementazione un po' meno... ;)

Inoltre non è obbligatorio usarle...


Posted by MaurizioL on 08-02-2006 14:24:

Per chi me l'aveva chiesta questa è la mia funzione hash basata su xor e shift

unsigned int hash1(int x,int y){
unsigned int hash=0xF4DB98A1;
hash^=x;
hash= ((hash & 0x000000FF) << 16) |
((hash & 0x00FF0000) >> 8 ) |
((hash & 0x0000FF00) << 16) |
((hash & 0xFF000000) >> 24);
hash^=y;
return hash;
}

__________________
Maurizio Lombardi
Linux 2.6.14.2
-----------------------


Posted by tyzer on 08-02-2006 17:34:

Noi eravamo con Goldwurm ed Aguzzoli...e di hash manco a parlarne, so che non sono obbligatorie ma allora che struttura dati si deve usare per il Piano?Qualcuno pensava una lista di liste o che altro...boh...la matrice l'ha esclusa il Prof per primo nel testo dell'esercizio...


Posted by Simeon on 08-02-2006 17:41:

Originally posted by tyzer
Noi eravamo con Goldwurm ed Aguzzoli...e di hash manco a parlarne, so che non sono obbligatorie ma allora che struttura dati si deve usare per il Piano?Qualcuno pensava una lista di liste o che altro...boh...la matrice l'ha esclusa il Prof per primo nel testo dell'esercizio...


No no che lista di liste, è sbagliato :asd:

Leggi nell'altro thread le possibili alternative.


Posted by MaurizioL on 08-02-2006 17:53:

Originally posted by tyzer
Noi eravamo con Goldwurm ed Aguzzoli...e di hash manco a parlarne, so che non sono obbligatorie ma allora che struttura dati si deve usare per il Piano?Qualcuno pensava una lista di liste o che altro...boh...la matrice l'ha esclusa il Prof per primo nel testo dell'esercizio...


L'hash non serve a rappresentare un piano.
Dato che i punti che cambiano valore sono pochi puoi usare un albero per memorizzare quei punti il cui valore è stato cambiato.
Gli altri avranno un valore predefinito

__________________
Maurizio Lombardi
Linux 2.6.14.2
-----------------------


Posted by gighen991 on 26-06-2016 21:48:

Scusate.. sto provando a far funzionare il programma di ornati.. ma c'è qualcosa che non quadra.. io faccio ./mappe nella shell di linux e lui parte.. poi faccio
c 10
v 2 3 25
v 3 4 20
v 4 5 40
m prima 1 0 NWWSEENESSWNNNEN
m seconda 2 1 NNEEEESSWWNNNEEESSWWWWNN
l

ma quando faccio l non stampa niente.. come mai?.. sono io che sbaglio qualcosa? grazie mille :)


Posted by Cronovirus on 27-06-2016 01:36:

Originally posted by gighen991
Scusate.. sto provando a far funzionare il programma di ornati.. ma c'è qualcosa che non quadra.. io faccio ./mappe nella shell di linux e lui parte.. poi faccio
c 10
v 2 3 25
v 3 4 20
v 4 5 40
m prima 1 0 NWWSEENESSWNNNEN
m seconda 2 1 NNEEEESSWWNNNEEESSWWWWNN
l

ma quando faccio l non stampa niente.. come mai?.. sono io che sbaglio qualcosa? grazie mille :)


Come avrai visto è un post di 10 anni fa :P Dubito che ti risponderanno gli autori.. cmq ho appena dato un'occhiata e direi che ti rimane appeso sulla read. Ti consiglio di modificare il makefile e di inserire l'opzione per i simboli di debug così puoi debuggare ad alto livello con gdb. Oppure usa 'strace' e vedrai che per l'input che gli dai tu rimane sulla read.

Prova a leggere meglio il codice, probabilmente non va bene come stai dando gli input


Posted by gighen991 on 27-06-2016 18:53:

Originally posted by Cronovirus
Come avrai visto è un post di 10 anni fa :P Dubito che ti risponderanno gli autori.. cmq ho appena dato un'occhiata e direi che ti rimane appeso sulla read. Ti consiglio di modificare il makefile e di inserire l'opzione per i simboli di debug così puoi debuggare ad alto livello con gdb. Oppure usa 'strace' e vedrai che per l'input che gli dai tu rimane sulla read.

Prova a leggere meglio il codice, probabilmente non va bene come stai dando gli input


Perfetto.. grazie mille :).. proverò anche se non sono molto pratico con la hash table.. e essendo il progetto lo stesso di quest'anno volevo farlo con gli alberi o i grafi, ma non trovo sorgenti con quelli.. almeno per capire come strutturare il problema.. :)


Posted by Cronovirus on 27-06-2016 19:00:

Beh se il progetto è lo stesso assicurati che nessun altro prenda spunto da questo ;)


All times are GMT. The time now is 15:01.
Show all 15 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.