|
lux87 |
ragazzi volevo un aiuto: un consiglio su come fare ... |
31-05-2010 21:24 |
|
|
lux87 |
.Padrino.
Registered: Dec 2007
Posts: 15 (0.00 al dì)
Location:
Corso: informatica
Anno: 3++
Time Online: 7:12:39 [...]
Status: Offline
Edit | Report | IP: Logged |
ragazzi volevo un aiuto: un consiglio su come fare ad inserire nel main i comandi "o" ed "l" (seconda e quarta riga della tabella).
grazie
|
31-05-2010 21:24 |
|
|
| |
|
carla86 |
Una domanda ke vi può sembrare idiota, ma in qst ... |
31-05-2010 21:58 |
|
|
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
Una domanda ke vi può sembrare idiota, ma in qst momento sono alla frutta...
Nella funzione ordina e nella funzione lineare il numero dei parametri non è specificato, potrebbero essere 2, come 3, come 4; giusto?
allora come fate nel leggere l'input?
nel case 'o' e nel case 'l' cosa fate, prima un ciclo ke vi conti quanti parametri avete e poi un ciclo ke ve li memorizza in un array? oppure mi sfugge qualche funzione o modo più immediato x sapere il numero dei parametri?
grazie mille
|
31-05-2010 21:58 |
|
|
| |
|
carla86 |
[QUOTE][i]Originally posted by Guepe [/i]
... |
31-05-2010 22:02 |
|
|
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Guepe
Per la disposizione lineare dopo un po di prove penso di aver capito il perchè scelga proprio quella anche se ne esistono altre con dimensione massima uguale ma ordine diverso di componenti.
Per l(2 7 17 24 26) sceglie il dispositivo formato dalle componenti che hanno maggior estensione e che soddisfano il criterio di linearità.
Ci sono 8 (se non mi sbaglio) possibili dispositivi lineari formati da:
c1 (L=4 E=12) posizioni possibili: 1°,2°,3°
c2 (L=6 E=12) posizioni possibili: 2°,3°
c3 (L=3 E=24) posizioni possibili: 1°,2°,3°
c5 (L=5 E=25) posizioni possibili: 1°,2°,3°
c6 (L=2 E=8) posizioni possibili: 4°
Dovendo avere estensione massima il dispositivo dovrà contenere per forza c5,c3 e uno tra c1 e c2 che hanno estensione uguale, ed ovviamente c6 che è l'unico a soddisfare il criterio linearità per l'ultima posizione.
Da una prima analisi, visto che nell'esempio diceva che le soluzioni possibili erano soltanto (c5,c1,c3,c6) e (c5,c2,c3,c6) ho pensato che scegliesse l'ordine dei componenti in base anche alla lunghezza di essi, infatti alla prima posizione sceglie c5, alla seconda sia c1 che c2 e alla terza c3 ma poi come soluzione finale nell'output sceglie (c5,c1,c3,c6) e quindi sto criterio va a farsi benedire....
bah pensavo di aver trovato una soluzione ma invece mi ritrovo punto a capo, quindi mi continuo a domandare perché proprio (c5,c1,c3,c6) è quella giusta quando
(c5,c2,c3,c6)
(c1,c3,c5,c6)
(c1,c5,c3,c6)
(c3,c2,c5,c6)
(c3,c5,c2,c6)
(c5,c3,c2,c6)
(c3,c1,c5,c6)
hanno estensione uguale e rispettano il criterio di linearità????
anke qui magari è una risposta stupida xo' ho fatto questo ragionamento:
siamo tutti daccordo ke x avere l'estensione massima deve per forza avere c5 e c3. poi l'unica che ci sta in posizione 4 è c6.
ora poteva scegliere tra c1 e c2 ma siccome sono tutte e due con estensione uguale ha scelto quella che è stata inserita x prima (in ordine lessicografico) e quindi c1?!
come ragionamento potrebbe essere o è una cavolata?
Alla fine voi come struttura x cosa avete optato? Io ho optato per un'albero red-black.
|
31-05-2010 22:02 |
|
|
| |
|
pirlo21 |
Riguardo alla funzione lineare avevo posto lo stes ... |
31-05-2010 23:13 |
|
|
pirlo21 |
.arcimaestro.
Registered: Nov 2007
Posts: 352 (0.06 al dì)
Location:
Corso: informatica
Anno:
Time Online: 2 Days, 21:38:57 [...]
Status: Offline
Edit | Report | IP: Logged |
Riguardo alla funzione lineare avevo posto lo stesso dubbio qualche giorno fa...bisogna capire il criterio di scelta tra le varie soluzioni...
Per la struttura dati anch'io ho usato un albero, però ora che sono alle prese con la funzione lineare non ne sono più molto convinto...
Infondo sto albero va bene solo per l'inserimento perchè per la funzione ordina e la funzione lineare è un casino...panico
|
31-05-2010 23:13 |
|
|
| |
|
Guepe |
[QUOTE][i]Originally posted by carla86 [/i]
... |
31-05-2010 23:28 |
|
|
Guepe |
.fedelissimo.
Registered: Feb 2007
Posts: 54 (0.01 al dì)
Location: Milano
Corso: informatica F49
Anno: 3
Time Online: 1 Day, 10:04:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by carla86
anke qui magari è una risposta stupida xo' ho fatto questo ragionamento:
siamo tutti daccordo ke x avere l'estensione massima deve per forza avere c5 e c3. poi l'unica che ci sta in posizione 4 è c6.
ora poteva scegliere tra c1 e c2 ma siccome sono tutte e due con estensione uguale ha scelto quella che è stata inserita x prima (in ordine lessicografico) e quindi c1?!
come ragionamento potrebbe essere o è una cavolata?
Alla fine voi come struttura x cosa avete optato? Io ho optato per un'albero red-black.
allora dovrebbe essere (c1,c3,c5,c6) la sequenza corretta se si guardasse l'ordine di inserimento, o anzi (c5,c3,c1,c6) seguendo prima l'ordine per estensione e in caso di ugualianza in base all'inserimento....
|
31-05-2010 23:28 |
|
|
| |
|
carla86 |
scusa ma x la funzione ordina: conta ke lui ti da ... |
31-05-2010 23:33 |
|
|
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
scusa ma x la funzione ordina: conta ke lui ti da un tot d codici identificativi e se quei codici identificativi li trovi allora devi stamparglieli ordinati per costo..
forse x questo caso è meglio crearsi una lista d supporto dove ordinare i nodi ke hanno corrispondente codice identificativo e ke hai estratto dall'albero.
mi sai dire come fare a leggere un numero variabile di interi; ossia mi spiego meglio, nella funzione ordina (e neanche in quella lineare) non ti dice a priori quanti elementi ti darà...
come fai?
ad esempio nel comando
o 5 27 89 65
ti da 4 codici identificativi (ma potrebbe dartene 5 oppure 2 oppure 8) come fai?
se leggo un numero alla volta, faccio partire la funzione d ricerca nell'albero, se lo trova lo voglio mettere in un array di supporto cosi ke una volta trovati tutti li ordino x costo.
ma nn sapendo quanti sono posso ogni volta riallocare l'array di una posizione in più con la calloc?
voi come fate?
|
31-05-2010 23:33 |
|
|
| |
|
carla86 |
[QUOTE][i]Originally posted by Guepe [/i]
... |
31-05-2010 23:36 |
|
|
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Guepe
allora dovrebbe essere (c1,c3,c5,c6) la sequenza corretta se si guardasse l'ordine di inserimento, o anzi (c5,c3,c1,c6) seguendo prima l'ordine per estensione e in caso di ugualianza in base all'inserimento....
no no io continuavo il tuo ragionamento.
secondo me è giusto come hai ragionato tu e l'ultima scelta che ha fatto il prof ossia se scegliere tra c1 e c2 ha scelto il primo in ordine lessicografico perchè l'estensione era uguale.
|
31-05-2010 23:36 |
|
|
| |
|
carla86 |
no hai ragione rileggendo e ripensandoci non si ri ... |
31-05-2010 23:40 |
|
|
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
no hai ragione rileggendo e ripensandoci non si riesce proprio a capire questo criterio...
mi sa che domani farò un salto in comelico e se il prof è li chiedo se posso salire un attimo a farmi spiegare sta cosa, perchè proprio non si capisce.. mah
|
31-05-2010 23:40 |
|
|
| |
|
Guepe |
[QUOTE][i]Originally posted by carla86 [/i]
... |
31-05-2010 23:54 |
|
|
Guepe |
.fedelissimo.
Registered: Feb 2007
Posts: 54 (0.01 al dì)
Location: Milano
Corso: informatica F49
Anno: 3
Time Online: 1 Day, 10:04:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by carla86
no no io continuavo il tuo ragionamento.
secondo me è giusto come hai ragionato tu e l'ultima scelta che ha fatto il prof ossia se scegliere tra c1 e c2 ha scelto il primo in ordine lessicografico perchè l'estensione era uguale.
ahhhh capito, fino alla scelta dei due dispositivi ci siamo, cioe son quei due perché con 4 componenti di cui due della stessa estensione per forza ci son due soluzioni se si segue il criterio della lunghezza, e poi la scelta finale la si effettua in base all'ordine di inserimento.
Tra l'altro tutto questo ragionamento è puro frutto di idee, sul testo non c'è scritto nulla, quindi rimane sempre un idea che oltretutto bisogna far implementare al codice.
Almeno un idea di partenza però c'è; adesso dovrei scegliere la struttura dati giusta e poi posso incominciare a scrivere codice...non lo finirò mai in tempo....cmq il progetto assomiglia molto a "ingranaggi 2" nel quale venivano usate liste e alberi red-black
|
31-05-2010 23:54 |
|
|
| |
|
carla86 |
dobbiamo mettercela tutta x finirlo entro l'8 giug ... |
01-06-2010 00:08 |
|
|
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
dobbiamo mettercela tutta x finirlo entro l'8 giugno!!!
cmq io x le strutture dati ho scelto un albero red-black per inserire tutte le componenti.
per quanto riguarda ordina e lineare ho qualche problema d input e poi effettivamente invece che copiarle in array potrei metterli in una lista per ordinarli e stamparli..
in che ordine d tempo si ordina su una lista d pochi elementi?
xke x la ricerca sono sicura ke la cosa migliore sia l'albero red-black (letto anke sulle slide di aguzzoli) ma x ordinare pochi elementi ke tiriamo fuori dall'albero possono essere valide?
effettivamente anke x lavorare sui dispositivi mi sa ke abbiamo bisogno di memorizzare i nodi che tiriamo fuori, anche se non so con che criterio tirarli fuori...
|
01-06-2010 00:08 |
|
|
| |
|
kalbiz |
[QUOTE][i]Originally posted by lux87 [/i]
... |
01-06-2010 08:42 |
|
|
kalbiz |
.primate.
Registered: Oct 2002
Posts: 72 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno:
Time Online: 2 Days, 16:48:32 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by lux87
ragazzi volevo un aiuto: un consiglio su come fare ad inserire nel main i comandi "o" ed "l" (seconda e quarta riga della tabella).
grazie
se può esseti di aiuto ...
ma non sono riuscito a capire perchè inserisce doppio l'ultimo numero ...
comunque
ho un array di componenti che viene aumentato con realloc a secoda del bisogno, inizialmente la struttura può contenere 6 int.
fa la scansione del valore inserito fino a che non viene premuto \n
array = (int *)malloc(sizeof(int) * 6 ); /* minimo componente */
prevSize = 6;
num = 0;
do { /* Continua finché vengono inseriti numeri */
scanf("%d",&x);
if(num >= prevSize) { /* ri-allochiamo */
prevSize += 2;
array = (int *)realloc(t, sizeof(int) * prevSize );
}
t[num++] = x;
}while((ch=getchar())!='\n');
se riesco a sistemarla oggi/domani posto la corretta ...
|
01-06-2010 08:42 |
|
|
| |
|
kalbiz |
io sto usando un albero RB per le componenti,
... |
01-06-2010 08:50 |
|
|
kalbiz |
.primate.
Registered: Oct 2002
Posts: 72 (0.01 al dì)
Location: Milano
Corso: Informatica
Anno:
Time Online: 2 Days, 16:48:32 [...]
Status: Offline
Edit | Report | IP: Logged |
io sto usando un albero RB per le componenti,
per la funzione ordina ho pensato di ricercare nell'albero se esiste un componente con il codice che mi viene passato,
se viene individuato, viene inserito in una lista di appoggio tenuta ordinata per costo ...
per l'inserimento di più codici utile per
ordina e lineare ,
ho usato la funzione postata sopra, legge un tot di int e rialloca lo spazio se ne serve ....
|
01-06-2010 08:50 |
|
|
| |
|
misterx |
edit ... |
01-06-2010 17:27 |
|
|
misterx |
.illuminato.
Registered: Sep 2003
Posts: 154 (0.02 al dì)
Location:
Corso:
Anno:
Time Online: 23:24:56 [...]
Status: Offline
Edit | Report | IP: Logged |
edit
Last edited by misterx on 01-06-2010 at 18:49
|
01-06-2010 17:27 |
|
|
| |
|
misterx |
sto guardandi gli alberi RB e non ho esperienza di ... |
02-06-2010 13:17 |
|
|
misterx |
.illuminato.
Registered: Sep 2003
Posts: 154 (0.02 al dì)
Location:
Corso:
Anno:
Time Online: 23:24:56 [...]
Status: Offline
Edit | Report | IP: Logged |
sto guardandi gli alberi RB e non ho esperienza di questi quindi chiedo consigli.
avendo implementato l'albero ed avendolo popolato, non mi è chiaro ora cosa passare come parametri alle seguenti funzioni per la visita dei nodi in ordine
grazie
void inord(rbnode *p, rbnode *nil, void (*op)(rbnode *))
{
if(p != nil) {
inord(p->left,nil,op);
(*op)(p);
inord(p->right,nil,op);
}
}
/ **************************************************
**************************/
/*procedura che serve alla visita ordinata del grafo rb, chiama specificando il nodo di partenza*/
void inorder(rbtree *p, void (*op)(rbnode *))
{
inord(p->root, p->nil, op);
}
|
02-06-2010 13:17 |
|
|
| |
|
carla86 |
[QUOTE][i]Originally posted by misterx [/i]
... |
02-06-2010 13:47 |
|
|
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by misterx
sto guardandi gli alberi RB e non ho esperienza di questi quindi chiedo consigli.
avendo implementato l'albero ed avendolo popolato, non mi è chiaro ora cosa passare come parametri alle seguenti funzioni per la visita dei nodi in ordine
grazie
void inord(rbnode *p, rbnode *nil, void (*op)(rbnode *))
{
if(p != nil) {
inord(p->left,nil,op);
(*op)(p);
inord(p->right,nil,op);
}
}
/ **************************************************
**************************/
/*procedura che serve alla visita ordinata del grafo rb, chiama specificando il nodo di partenza*/
void inorder(rbtree *p, void (*op)(rbnode *))
{
inord(p->root, p->nil, op);
}
come l'hai popolato? o meglio, con la funzione di inserimento hai fatto in modo che fossero ordinati dalla radice o dalla foglia?
|
02-06-2010 13:47 |
|
|
| |
|
All times are GMT. The time now is 07:35. |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|