Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi A - F > Algoritmi e strutture dati > [algoritmi] Progetto di Febbraio "Itinerari"
Pages (8): « 1 2 3 [4] 5 6 7 8 »   Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
AlphaGamma
.piano ma pieni.

User info:
Registered: Jun 2002
Posts: 6732 (0.79 al dì)
Location:
Corso: Eh?
Anno: Io cosa?
Time Online: 21 Days, 21:22:01: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

In questo caso violi le specifiche del progetto che NON DEVE porre limiti alla lunghezza delle strade.
Molto piu' semplicemente, ho deciso di leggere da stdin carattere per carattere, poi col carattere devo ancora decidere cosa fare.

PS: ho messo on line nell'area filez->esame di algoritmi->progetto itinerari un piccolo programmino che genera strade casuali generando un output compatibile con l'input richiesto dal progetto. Potrebbe essere utile quando fate debugging nella costruzione delle strade.

Il link e' questo:
http://www.dsy.it/forum/showthread....44432#post44432

__________________
Attenzio', concentrazio', ritmo e VITALITÀ

08-02-2003 02:40
Click Here to See the Profile for AlphaGamma Click Here to See the Blog of AlphaGamma Click here to Send AlphaGamma a Private Message Visit AlphaGamma's homepage! Find more posts by AlphaGamma Add AlphaGamma to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
AlphaGamma
.piano ma pieni.

User info:
Registered: Jun 2002
Posts: 6732 (0.79 al dì)
Location:
Corso: Eh?
Anno: Io cosa?
Time Online: 21 Days, 21:22:01: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by M3lkor
Scusa ma se l'algoritmo è scritto in pseudo codice un motivo c'è... ed è che SEI tu ad adattare il codice ad un algoritmo non il contrario.


Non sono del tutto d'accordo. ;)
Il codice in C in un corso di algoritmi e' direttamente implementabile, modificabile e quindi piu' facilmente comprensibile (perche' e' empiricamente verificabile).
Inoltre il tuo lavoro non deve consistere nel TRADURRE ma nell'ADATTARE il codice esistente.
In altre parole non dobbiamo reinventare la ruota. Tantopiu' che 16 giorni sono pochi.


Comunque dando un occhiata al progetto (molto di sfuggita ad essere sincero) non mi è sembrato un eccessivo casino.


L'implementazione del cammino piu' breve e la cancellazione di tutti i cammini sono algoritmi complessi che richiedono attenzione sia nella scelta della struttura dati che nella implementazione.

Ok, non sono molto esperto di C e di programmazione, so qualcosina della teoria, pero' a me sembra un progetto assolutamente non banale per il poco tempo a disposizione.

__________________
Attenzio', concentrazio', ritmo e VITALITÀ

08-02-2003 02:52
Click Here to See the Profile for AlphaGamma Click Here to See the Blog of AlphaGamma Click here to Send AlphaGamma a Private Message Visit AlphaGamma's homepage! Find more posts by AlphaGamma Add AlphaGamma to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Cancer
.metallaro.

User info:
Registered: Oct 2002
Posts: 66 (0.01 al dì)
Location:
Corso: Specialistica in TICO
Anno:
Time Online: 3 Days, 9:34:08: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by lord2y
vers. 1.2

#define DIM 1000

main(){

char stringa[DIM];
/*dimensiono una stringa di 1000*/
scanf("%s", stringa);

}

cmq la scanf mi inizializza a null il puntatore azzerando l'area di memoria...


Cosa intendi per "scanf inizializza a null il puntatore azzerando l'area di memoria"? Guarda ti assicuro che scanf il puntatore non lo tocca proprio...
Comunque se vuoi ti do un consiglio su come leggere una stringa di lunghezza arbitraria (almeno,come farei io,poi ci sono 1000 modi!):
Allochi un area di memoria di N bytes, leggi un carattere alla volta da stdin, se arrivi a leggere N caratteri, reallochi ulteriori N bytes (quindi 2N in tutto) e cosi via...
Ciao!

__________________
You can find all that you need in your mind...If you take the time

08-02-2003 09:36
Click Here to See the Profile for Cancer Click here to Send Cancer a Private Message Find more posts by Cancer Add Cancer to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
dan
..: Dottore :..

User info:
Registered: Oct 2002
Posts: 2446 (0.29 al dì)
Location: MI
Corso: Info
Anno: 3
Time Online: 11 Days, 7:56:39 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Cosa ne dite di un albero costituito da nodi con 4 figli a testa (denominati magari N S W E), i cui puntatori possano essere NULL o puntare al nodo che seguono il nodo nelle varie direzioni.

Non so però come implementare il numero di strade passanti per quel nodo!! :(

D.

08-02-2003 09:45
Click Here to See the Profile for dan Click here to Send dan a Private Message Visit dan's homepage! Find more posts by dan Add dan to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
lord2y
BANNATO

User info:
Registered: Jul 2002
Posts: 1498 (0.18 al dì)
Location: Milano
Corso: Qualcosa a che fare con l'informatica
Anno: 24esimo ;-(
Time Online: 9 Days, 17:16:35 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by Cancer
Cosa intendi per "scanf inizializza a null il puntatore azzerando l'area di memoria"? Guarda ti assicuro che scanf il puntatore non lo tocca proprio...
Comunque se vuoi ti do un consiglio su come leggere una stringa di lunghezza arbitraria (almeno,come farei io,poi ci sono 1000 modi!):
Allochi un area di memoria di N bytes, leggi un carattere alla volta da stdin, se arrivi a leggere N caratteri, reallochi ulteriori N bytes (quindi 2N in tutto) e cosi via...
Ciao!


infatti ho detto che questa nn era la soluzione giusta..
Per evitare di incorrere in seg fault, problemi di lunghezza di stringa uso un getchar per prendere il singolo carattere ponendo la condizione ... != '\n' .

La scanf la uso solo per prendere in input le coordinate del punto.

:ciao:

Ps s vuoi saperne di più sulla scanf --> da prompt man scanf

__________________
Linux User#271051
Only God can judge me, is that right?
Only God can judge me now
Only God baby, nobody else. All you other motherfuckers get out my business (2Pac)

08-02-2003 10:09
Click Here to See the Profile for lord2y Click Here to See the Blog of lord2y Click here to Send lord2y a Private Message Visit lord2y's homepage! Find more posts by lord2y Add lord2y to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
lord2y
BANNATO

User info:
Registered: Jul 2002
Posts: 1498 (0.18 al dì)
Location: Milano
Corso: Qualcosa a che fare con l'informatica
Anno: 24esimo ;-(
Time Online: 9 Days, 17:16:35 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by AlphaGamma
Non sono del tutto d'accordo. ;)
Il codice in C in un corso di algoritmi e' direttamente implementabile, modificabile e quindi piu' facilmente comprensibile (perche' e' empiricamente verificabile).
Inoltre il tuo lavoro non deve consistere nel TRADURRE ma nell'ADATTARE il codice esistente.
In altre parole non dobbiamo reinventare la ruota. Tantopiu' che 16 giorni sono pochi.



L'implementazione del cammino piu' breve e la cancellazione di tutti i cammini sono algoritmi complessi che richiedono attenzione sia nella scelta della struttura dati che nella implementazione.

Ok, non sono molto esperto di C e di programmazione, so qualcosina della teoria, pero' a me sembra un progetto assolutamente non banale per il poco tempo a disposizione.


apro una parentesi polemica:

il progetto è complesso. Il tempo è poco e il laboratorio di C che accompagnava le lezioni di algoritmi è stato del tutto inutile. Certi aspetti della programmazione in C nn sono stati minimamente visti..E certo esempi di strutture dati simili a quella che dovremo usare per implementare questo progetto non sono neanche stati accenati...
Quindi...........

chiudo la parentesi polemica

__________________
Linux User#271051
Only God can judge me, is that right?
Only God can judge me now
Only God baby, nobody else. All you other motherfuckers get out my business (2Pac)

08-02-2003 10:13
Click Here to See the Profile for lord2y Click Here to See the Blog of lord2y Click here to Send lord2y a Private Message Visit lord2y's homepage! Find more posts by lord2y Add lord2y to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Cancer
.metallaro.

User info:
Registered: Oct 2002
Posts: 66 (0.01 al dì)
Location:
Corso: Specialistica in TICO
Anno:
Time Online: 3 Days, 9:34:08: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by lord2y
infatti ho detto che questa nn era la soluzione giusta..
Per evitare di incorrere in seg fault, problemi di lunghezza di stringa uso un getchar per prendere il singolo carattere ponendo la condizione ... != '\n' .

La scanf la uso solo per prendere in input le coordinate del punto.

:ciao:

Ps s vuoi saperne di più sulla scanf --> da prompt man scanf


Mah,dal tuo primo messaggio a riguardo mi sembra che tu volessi rispondere a chi aveva chiesto come leggere una stringa di lunghezza arbitraria...
Comunque se sappiamo tutti come farlo non c'è più nessun problema!:-D
L'unica cosa (e man scanf te lo potra' confermare) e' che scanf non ci pensa proprio a inizializzarti a null il puntatore... (bho, forse ho interpretato ancora male io quello che hai scritto, ma hai proprio detto "cmq la scanf mi inizializza a null il puntatore azzerando l'area di memoria... ").
Ri-Ciao!

__________________
You can find all that you need in your mind...If you take the time

08-02-2003 11:28
Click Here to See the Profile for Cancer Click here to Send Cancer a Private Message Find more posts by Cancer Add Cancer to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
nous
.:Retore Pomposo:.

User info:
Registered: Dec 2001
Posts: 2945 (0.34 al dì)
Location: Fino Mornasco - Como
Corso: Informatica
Anno: Specialista
Time Online: 16 Days, 13:56:49 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by M3lkor
Forse una tabella HASH sarebbe interessante da utilizzare...

Melkor


Secondo me sarebbe divertente usare la heap ;)

__________________
Cristian,il Nous che invoglia ^_^

"La capa è troppo in la,e la sbarba è troppo giovane..mi sa che qua si va in bianco"
Ryo Saeba (City Hunter)

Last edited by nous on 08-02-2003 at 11:39

08-02-2003 11:35
Click Here to See the Profile for nous Click Here to See the Blog of nous Click here to Send nous a Private Message Visit nous's homepage! Find more posts by nous Add nous to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
nous
.:Retore Pomposo:.

User info:
Registered: Dec 2001
Posts: 2945 (0.34 al dì)
Location: Fino Mornasco - Como
Corso: Informatica
Anno: Specialista
Time Online: 16 Days, 13:56:49 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by Wolf
Problema: come cavolo faccio a prendere in ingresso una maledetta stringa di dimensioni qualsiasi??


Copio e incollo dal mio progetto,adattatevelo al vostro caso :

int readline(FILE *stream, char **buffer) {
#define TBSIZE 10
int in_buffers=0;
char tmpbuf[TBSIZE+1]={0};
char *newline;

do {
in_buffers++;
*buffer=realloc(*buffer, in_buffers*TBSIZE*sizeof(char)+1);
if (!(*buffer)) return ERROR_CANT_MALLOC;

if (fgets(tmpbuf,TBSIZE+1,stream)==NULL) {
if(in_buffers==1) return ERROR_EOF;
else return 0;
}

newline=strchr(tmpbuf,'\n');
if(newline) *newline='\0';

strcpy((*buffer)+(in_buffers-1)*TBSIZE, tmpbuf);
} while (!newline);
return 0;

__________________
Cristian,il Nous che invoglia ^_^

"La capa è troppo in la,e la sbarba è troppo giovane..mi sa che qua si va in bianco"
Ryo Saeba (City Hunter)

08-02-2003 11:50
Click Here to See the Profile for nous Click Here to See the Blog of nous Click here to Send nous a Private Message Visit nous's homepage! Find more posts by nous Add nous to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
rafnet
.grande:maestro.

User info:
Registered: Apr 2002
Posts: 524 (0.06 al dì)
Location: milano
Corso: Informatica
Anno: 3° teorico
Time Online: 2 Days, 3:50:26 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by Cancer
...
Comunque se sappiamo tutti come farlo non c'è più nessun problema!.....


Calma, calma io no ci ho capito un h, ho usato una normale stringa per prendere in input il percorso che per quanto lungo sia non potrà mai colmare la dimensione di una stringa no?

:ban:

__________________
La vita è una jungla!

08-02-2003 11:52
Click Here to See the Profile for rafnet Click here to Send rafnet a Private Message Find more posts by rafnet Add rafnet to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
M3lkor
.consigliere.

User info:
Registered: Feb 2003
Posts: 116 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno: 19
Time Online: 15:49:28 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by AlphaGamma
Non sono del tutto d'accordo. ;)
Il codice in C in un corso di algoritmi e' direttamente implementabile, modificabile e quindi piu' facilmente comprensibile (perche' e' empiricamente verificabile).
Inoltre il tuo lavoro non deve consistere nel TRADURRE ma nell'ADATTARE il codice esistente.
In altre parole non dobbiamo reinventare la ruota. Tantopiu' che 16 giorni sono pochi.



L'implementazione del cammino piu' breve e la cancellazione di tutti i cammini sono algoritmi complessi che richiedono attenzione sia nella scelta della struttura dati che nella implementazione.

Ok, non sono molto esperto di C e di programmazione, so qualcosina della teoria, pero' a me sembra un progetto assolutamente non banale per il poco tempo a disposizione.


Ok sono d'accordo su alcuni punti... Diciamo che il tempo a disposizione non è sufficentemente lungo perchè tutti riescano a farlo. Ma rimane comunque una cosa non eccessivamente complessa escludendo il fattore tempo.

Non sono d'accordo sugli algoritmi. Un algoritmo deve essere utilizzabile con goni tipo di linguaggio e quindi non deve essere scritto in un linguaggio specifico proprio perchè noi dovremmo, in teoria, estrapolare dall'algoritmo il codice nel linguaggio che ci interessa. D'altro canto un algoritmo di per sè è un insieme di "istruzioni" che permettono il compimento di un compito in un tempo "x". Che poi tu lo scriva in Java, in C, in C++, in Perl, in CGI, in Algol o in Fortran la cosa cambia relativamente poco...

Questo presumo fosse lo scopo del corso... che poi sia più comodo che gli algoritmi vengano presentati nel linguaggio che poi sarà quello del progetto finale.... beh questo è ovvio che renderebbe le cose più semplici ;)

Melkor

__________________
---Any sufficiently advanced technology is indistinguishable from magic.---

Per favore non mandatemi allegati in Word o PowerPoint.
Si veda http://www.fsf.org/philosophy/no-word-attachments.html

08-02-2003 12:18
Click Here to See the Profile for M3lkor Click here to Send M3lkor a Private Message Find more posts by M3lkor Add M3lkor to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
nous
.:Retore Pomposo:.

User info:
Registered: Dec 2001
Posts: 2945 (0.34 al dì)
Location: Fino Mornasco - Como
Corso: Informatica
Anno: Specialista
Time Online: 16 Days, 13:56:49 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Trasudi saggezza,concordo su te in tutto e ti stringo virtualmente la mano ;)

__________________
Cristian,il Nous che invoglia ^_^

"La capa è troppo in la,e la sbarba è troppo giovane..mi sa che qua si va in bianco"
Ryo Saeba (City Hunter)

08-02-2003 12:36
Click Here to See the Profile for nous Click Here to See the Blog of nous Click here to Send nous a Private Message Visit nous's homepage! Find more posts by nous Add nous to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Lestat de lioncourt
.consigliere.

User info:
Registered: Sep 2002
Posts: 112 (0.01 al dì)
Location:
Corso: informatica magistrale
Anno: ultimo...
Time Online: 4 Days, 7:55:39 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Alphagamma, mi spieghi un po' meglio la tua idea per utilizzare gli alberi in questo prog.?
Sul pdf dell'ultima lezione di Fiorentini a pag.5 c'è un esempio in cui usa un albero di ricerca per rappresentare i punti del piano.
Se ogni nodo rappresenta i punti, dove memorizzi l'informazione relativa al reale percorso esistente fra questi punti?
Se tale info è rappresentata dai legami di parentela fra i nodi, l'albero rappresentato non degenera quasi in una lista nel caso del nostro progetto?
A parte che una volta che le strade iniziano ad incrociarsi non ci si trova più davanti ad un albero, ma ad un grafo, perchè si creano dei cicli.

:help:

Io sto usando un grafo non orientato rapp. con liste d'adiacenza

__________________
Non è detto che non ci sia nulla da capire soltanto perchè non si capisce nulla.

(by me)

Last edited by Lestat de lioncourt on 08-02-2003 at 12:47

08-02-2003 12:45
Click Here to See the Profile for Lestat de lioncourt Click here to Send Lestat de lioncourt a Private Message Find more posts by Lestat de lioncourt Add Lestat de lioncourt to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
AlphaGamma
.piano ma pieni.

User info:
Registered: Jun 2002
Posts: 6732 (0.79 al dì)
Location:
Corso: Eh?
Anno: Io cosa?
Time Online: 21 Days, 21:22:01: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by M3lkor
Non sono d'accordo sugli algoritmi. Un algoritmo deve essere utilizzabile con goni tipo di linguaggio e quindi non deve essere scritto in un linguaggio specifico proprio perchè noi dovremmo, in teoria, estrapolare dall'algoritmo il codice nel linguaggio che ci interessa. D'altro canto un algoritmo di per sè è un insieme di "istruzioni" che permettono il compimento di un compito in un tempo "x". Che poi tu lo scriva in Java, in C, in C++, in Perl, in CGI, in Algol o in Fortran la cosa cambia relativamente poco...
Melkor


Credo che esistano almeno due modi per approcciarsi a questa materia, uno piu' marcatamente teorico, ed uno piu' orientato ad applicazioni pratiche.

Se l'approccio e' teorico allora va bene una rappresentazione degli algoritmi indipendente dall'architettura dell'elaboratore. Questo e' utile per studi matematici sugli algoritmi, per mostrare il "nudo" algoritmo senza perdersi in "noiose" questioni di contorno.

Se tuttavia la finalita' principale dello studio e' alla fin fine una applicazione pratica, diventa assolutamente prioritario riferirsi ad un reale linguaggio di programmazione, che sappia implementare tutte le caratteristiche degli algoritmi.

In altre parole se sei interessato all'informatica piu' teorica, allo studio della complessita', la struttura degli algoritmi o problemi simili, vale il primo approccio. Se invece vuoi imparare a programmare, ed imparare a farlo bene, segui necessariamente una strada concretamente praticabile e sperimentale.

Questo tipo di scelta e' indipendente dall'esistenza o meno di un progetto finale in C. Si tratta infatti dell'ennesima riproposizione di una questione esistente in moltissimi esami.

Personalmente ho scelto per la seconda, perche' l'informatica mi appassiona per le sue applicazioni e perche' un domani dovrebbe darmi da mangiare.

Pertanto ben vengano delle soluzioni pratiche a quelli annosi problemi che parlano di implementazione pratica, di definizione di variabili, e tutto il resto.

Quindi credo che il lavoro di uno studente di algoritmi debba essere prima di tutto non quello di tradurre in C cose scritte in pseudolinguaggio, ma di adattarle alle proprie esigenze.

Anche Nous che contesta questa mia idea alla fin fine quando ha postato il codice per inserire strighe di dimensione a piacere mica ha usato un pseudolinguaggio. Li ha postati in maniera direttamente utilizzabile ed adattabile. Cioe' in C.

__________________
Attenzio', concentrazio', ritmo e VITALITÀ

08-02-2003 17:39
Click Here to See the Profile for AlphaGamma Click Here to See the Blog of AlphaGamma Click here to Send AlphaGamma a Private Message Visit AlphaGamma's homepage! Find more posts by AlphaGamma Add AlphaGamma to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
AlphaGamma
.piano ma pieni.

User info:
Registered: Jun 2002
Posts: 6732 (0.79 al dì)
Location:
Corso: Eh?
Anno: Io cosa?
Time Online: 21 Days, 21:22:01: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by Lestat de lioncourt
Alphagamma, mi spieghi un po' meglio la tua idea per utilizzare gli alberi in questo prog.?
Sul pdf dell'ultima lezione di Fiorentini a pag.5 c'è un esempio in cui usa un albero di ricerca per rappresentare i punti del piano.


Io ho usato un albero binario per memorizzare i punti, ed uno 4-ario per memorizzare gli itinerari.
Devo ancora vedere se funziona. :D

__________________
Attenzio', concentrazio', ritmo e VITALITÀ

08-02-2003 17:41
Click Here to See the Profile for AlphaGamma Click Here to See the Blog of AlphaGamma Click here to Send AlphaGamma a Private Message Visit AlphaGamma's homepage! Find more posts by AlphaGamma Add AlphaGamma to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 17:19.    Post New Thread    Post A Reply
Pages (8): « 1 2 3 [4] 5 6 7 8 »   Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.105 seconds (54.94% PHP - 45.06% MySQL) con 23 query.