.dsy:it. Pages (16): « First ... « 3 4 5 6 [7] 8 9 10 11 » ... Last »
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Algoritmi e strutture dati (http://www.dsy.it/forum/forumdisplay.php?forumid=207)
-- [Algoritmi e strutture dati - Torelli] Progetto 6 aprile (http://www.dsy.it/forum/showthread.php?threadid=9969)


Posted by Dante on 14-04-2004 10:47:

grazie! provo!

__________________
Sometimes you hurt the ones who love you most and sometimes you hold the ones who leave you lost,
and sometimes you learn
but its too late, it's too late. EI


Posted by tom80 on 14-04-2004 11:09:

Ciao io per leggere l'input ho usato un semplice do while.Ho dichiarato prima una variabile char ch e prima di entrare nel ciclo do while la inizializzo con una getchar().Poi ho utilizzato uno switch per distinguere i vari casi.Continuo così fino a quando ch != 'q' && ch != 'Q'.

Esempio


int a,b,c,d,x,y;
char ch;

ch = getchar();

do {

switch ( ch ) {

case 'f': case 'F':
scanf ( "%d%d%d%d%d%d", &a,&b,&c,&d,&x,&y);
if ( cerca ( q,a,b,c,d ) == NULL ) {
q = inserisci(a,b,c,d,x,y );
break;

......



......



default:
break;

}

ch = getchar();

}while ( ch != 'q' && ch != 'Q' );

}

La variabile q e' un puntatore alla lista vuota.Io sto realizzando il progetto con le liste di Adiacenza.

Spero di essere stato d'aiuto.

Ciao ciao Tom80


Posted by Skanky on 14-04-2004 12:43:

Originally posted by loreste
Per Tom80
Per quanto riguarda il calcolo del piano devi fare una funzione ricorsiva, elimini tutti i nodi con zero figli, quando arrivi al filtro che ti interessa esci dal ciclo, nel frattempo incrementi un contatore, il numero risultante e il grado del filtro.

Ciao

MMM non riesco a capire , ma hai usato liste di adiacenza?


Posted by loreste on 14-04-2004 13:42:

Scusa la mia ignoranza, ma cosa sono le liste di adiacenza????
Io conosco solo liste monodirezionali, bidirezionali e con sentinella.
Io ho usato una lista monodirezionale.

__________________
La Fede non retrocede mai!
Döma Atalanta!!!!!!!!


Posted by Gusher on 14-04-2004 13:48:

è un modo per rappresentare un grafo sul calcolatore.
Vedi il capitolo sui grafi (Cormen), ci sono un paio di esempi.


Posted by loreste on 14-04-2004 14:25:

Se qualcuno avesse finito ed avesse voglia di confrontare i vari algoritmi, mi faccia sapere....
Io ho utilizzato una lista, se qualcuno che ha preso questa strada e vuole una mano me lo dica.
In bocca al lupo a tutti.

__________________
La Fede non retrocede mai!
Döma Atalanta!!!!!!!!


Posted by mitnik on 14-04-2004 15:07:

Per Loreste

Ciao, anche io sto utilizzando delle liste. Ho qualche problema per il calcolo del grado del piano, mi sembra di avere complicato un po le cose. Hai qualche consiglio da darmi? Se vuoi sapere come sto procedendo io ti manderò un messaggio. Ciao Grazie


Posted by loreste on 14-04-2004 15:46:

Per mitnik
Ti ho mandato un PM

__________________
La Fede non retrocede mai!
Döma Atalanta!!!!!!!!


Posted by Skanky on 14-04-2004 17:15:

Originally posted by loreste
Se qualcuno avesse finito ed avesse voglia di confrontare i vari algoritmi, mi faccia sapere....
Io ho utilizzato una lista, se qualcuno che ha preso questa strada e vuole una mano me lo dica.
In bocca al lupo a tutti.

Lista di adiacenza credo proprio che sia come lo hai fatto anche tu.

Pero' non riesco a fare una procedura fatat bene per il calcolo dekl dell'aniidamento di un filtro.
Puoi darmi qualche dritta?
mercy


Posted by loreste on 14-04-2004 17:37:

Siccome sto ricevendo diversi PM per il calcolo del grado vi spiego come ho fatto (però non garantisco che sia l'ipotesi migliore, tutto è migliorabile)
Creo una lista d'appoggio dove inserisco tutti i figli del filtro e ricorsivamente elimino tutti i filtri con zero figli, e metto a 1 un contatore, vado avanti ricorsivamente finchè non ho più figli, a quel punto guardo quanto vale il contatore.
Per quanto riguarda il gradopiano, richiamo la funzione grado per tutti i filtri, guardo qual'è il filtro con grado maggiore (es. 4)aggiungo 1 ed avrò 5 che è il mio gradopiano.
Sto pensando,se siete interessati, di essere in università domani (15 aprile) per le 18 con il mio notebook, per darvi maggiori informazioni, però fatemi sapere.
Naturalmente ci sarò solo se almeno uno mi risponde che è interessato

CHE SIA CHIARO NON FARO' COPIARE A NESSUNO, VI DO SOLO DELLE DRITTE.

__________________
La Fede non retrocede mai!
Döma Atalanta!!!!!!!!


Posted by Skanky on 15-04-2004 16:03:

Originally posted by loreste
Siccome sto ricevendo diversi PM per il calcolo del grado vi spiego come ho fatto (però non garantisco che sia l'ipotesi migliore, tutto è migliorabile)
Creo una lista d'appoggio dove inserisco tutti i figli del filtro e ricorsivamente elimino tutti i filtri con zero figli, e metto a 1 un contatore, vado avanti ricorsivamente finchè non ho più figli, a quel punto guardo quanto vale il contatore.
Per quanto riguarda il gradopiano, richiamo la funzione grado per tutti i filtri, guardo qual'è il filtro con grado maggiore (es. 4)aggiungo 1 ed avrò 5 che è il mio gradopiano.
Sto pensando,se siete interessati, di essere in università domani (15 aprile) per le 18 con il mio notebook, per darvi maggiori informazioni, però fatemi sapere.
Naturalmente ci sarò solo se almeno uno mi risponde che è interessato

CHE SIA CHIARO NON FARO' COPIARE A NESSUNO, VI DO SOLO DELLE DRITTE.


Interessante procedura, ci penso un pò . intanto io ho risolto in un altro modo direi piu' complicato.
grazie del post
ciao


Posted by Skanky on 16-04-2004 10:14:

Per loreste.
Considera il caso:

Dati questi filtri
A (1,1,8,10)

B(1,1,4,4)
C(1,1,2,2)

D(4,2,7,4)
E(5,3,6,4)

F(3,5,8,9)
G(4,6,7,8)

Voglio trovare il grado di A ( che è 2)
Con la tua procedura
metto come figli
A-B-C-D-E-F-G

tolgo quelli senza figlio
rimane
A-B-D-F
Se li conto sono 3 e se il puntatore parte da 1 mi da 4.

Magari ho capito male la procedura.....scusa se mi metto a fare l'avvocato del diavolo , ma meglio io che il prof ;-)
ciao


Posted by loreste on 16-04-2004 11:07:

Sono contento quando ci sono gli avvocati del diavolo, perchè ho la possibilità di testare meglio il mio progetto, nel caso proposto da Stanky il mio progetto da come grado di A = 2 percui è giusto e ho tirato un sospiro di sollievo.
Però forse non sono stato chiaro.
Nell'esempio di Stanky se vuoi trovare il grado di A, perche mi dici che metti come figlio A??????
1)A NON è figlio di A
2)Cancello tutti i figli di A che non hanno Figli (C -E G)
3)Metto un contatore a 1
4)Ora (se fate una procedura ricorsiva) i figli rimasti sono (B D E)
5)Cancello tutti i figli di A che non hanno figli (B D E)
6)Il contatore vale 2
7)La lista dei figli ora è NULL ed esco dalla funzione
8)IL GRADO DI A = 2

Spero di essere stato più chiaro, cmq sono ben richiesti gli avvocati del diavolo, come giustamente dice Stanky meglio voi che il prof!

__________________
La Fede non retrocede mai!
Döma Atalanta!!!!!!!!


Posted by Moffone on 16-04-2004 11:17:

metto un test!

INPUT:

s 3 5
f 7 7 9 9 2 3
f 5 8 6 10 7 5
f 5 5 11 10 1 0
f 4 4 12 11 1 7
f 8 13 11 15 6 1
f 7 12 12 15 3 4
f 4 14 5 15 1 1
f 3 13 5 15 7 10
f 3 2 14 15 4 5
f 13 14 99 99 0 0
g 7 7 9 9
p 8 8
p 8 3
i 7 7 9 9 8 13 11 15
g 3 13 5 15
e 3 13 5 15
g 3 13 5 15
i 7 7 9 9 8 13 11 15
g 7 12 12 15
f 14 2 15 5 1 1
p 14 4
G


OUTPUT

(13, 14, 99, 99) non inseribile
0
1 2
1 0
(3, 4, 12, 15)
1
(4, 4, 12, 15)
1
2 1
4



Fatemi sapere se vi vengono gli stessi risultati!

__________________
Federazione
Imbroglioni
Giuoco
Calcio


Posted by loreste on 16-04-2004 11:23:

Ok!!!|:D
Ho passato il test di Moffone.

__________________
La Fede non retrocede mai!
Döma Atalanta!!!!!!!!


All times are GMT. The time now is 15:39. Pages (16): « First ... « 3 4 5 6 [7] 8 9 10 11 » ... Last »
Show all 234 posts from this thread on one page

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