.dsy:it. Pages (9): « First ... « 4 5 6 7 [8] 9 »
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)
-- Progetto "Componenti Elettroniche" (http://www.dsy.it/forum/showthread.php?threadid=40479)


Posted by carla86 on 07-06-2010 22:59:

un'altra cosa ke nn mi quadra.

nodorb inserimento_area(alberorb *albarea, int i, int f, int c, int l, int h)
{
nodorb *q = malloc(sizeof(nodorb));
nodorb *r = albarea->radice;
nodorb *s = albarea->sentinella;
int area;
if(!q)
{
fprintf(stderr,"Errore di allocazione del nodo.\n");
exit(-5);
}
q->codice_identificativo = i;
q->famiglia = f;
q->costo = c;
q->lunghezza = l;
q->altezza = h;
area = (l*h);
q->estensione = area;
q->f_sinistro = q->f_destro = albarea->sentinella;
q->colore_nodo = red;
while(r != albarea->sentinella)
{
s = r;
r = (l*h) < r->estensione ? r->f_sinistro : r->f_destro;
}
q->padre = s;
if(s == albarea->sentinella)
return albarea->radice = q;
if((l*h) < s->estensione)
s->f_sinistro = q;
else
s->f_destro = q;
return q;
}

xke mi da questo errore:

426: error: incompatible types in return
progetto2.c:431: error: incompatible types in return
progetto2.c:432: warning: control reaches end of non-void function

la riga 426 è: return albarea->radice = q;
la riga 431 è: return q;

se qualcuno capisce il perchè... io nn ci riesco un po xke sono fusa e un po xke sono nervosa ke nn so come fare lineare...
argh nn posso nn consegnare solo x una funzione maledetta!!!

ps da notare ke sull'altra funzione di inserimento praticamente identica va tutto bene, su questa ke mi serve per l'albero delle aree no... uffa!!!


Posted by carla86 on 07-06-2010 23:50:

Originally posted by carla86
un'altra cosa ke nn mi quadra.

nodorb inserimento_area(alberorb *albarea, int i, int f, int c, int l, int h)
{
nodorb *q = malloc(sizeof(nodorb));
nodorb *r = albarea->radice;
nodorb *s = albarea->sentinella;
int area;
if(!q)
{
fprintf(stderr,"Errore di allocazione del nodo.\n");
exit(-5);
}
q->codice_identificativo = i;
q->famiglia = f;
q->costo = c;
q->lunghezza = l;
q->altezza = h;
area = (l*h);
q->estensione = area;
q->f_sinistro = q->f_destro = albarea->sentinella;
q->colore_nodo = red;
while(r != albarea->sentinella)
{
s = r;
r = (l*h) < r->estensione ? r->f_sinistro : r->f_destro;
}
q->padre = s;
if(s == albarea->sentinella)
return albarea->radice = q;
if((l*h) < s->estensione)
s->f_sinistro = q;
else
s->f_destro = q;
return q;
}

xke mi da questo errore:

426: error: incompatible types in return
progetto2.c:431: error: incompatible types in return
progetto2.c:432: warning: control reaches end of non-void function

la riga 426 è: return albarea->radice = q;
la riga 431 è: return q;

se qualcuno capisce il perchè... io nn ci riesco un po xke sono fusa e un po xke sono nervosa ke nn so come fare lineare...
argh nn posso nn consegnare solo x una funzione maledetta!!!

ps da notare ke sull'altra funzione di inserimento praticamente identica va tutto bene, su questa ke mi serve per l'albero delle aree no... uffa!!!


HO LA CONFERMA KE SONO FUSA.. MI ERO DIMENTICATA L'ASTERISCO PER IL FATTO KE TORNA UN PUNTATORE A UN NODO...
VA BE.. INTANTO CON LINEARE NN SO COME FARE...


Posted by mostrielo on 08-06-2010 10:04:

Originally posted by carla86
scusami ma hai usato degli array gia dall'inizio quando hai letto l'input oppure con l'input letto e messo in un'altra struttura (tipo io l'ho messo in una lista) hai costruito i tre array?
l'ultimo array sarebbero dei puntatori ai nodi dell'albero giusto?


Ho letto l'input e l'ho messo in un array; poi ho creato i due array ausiliari: distanze tra ganci e puntatori a Componente.
Durante la visita dell'albero di predecessore in predecessore, all'ultimo array, se la lunghezza del rettangolo è <= della distanza tra i ganci, viene assegnato il campo Componente del nodo (max corrente); per stampare i componenti il dispositivo basta un ciclo su questo array.


Posted by carla86 on 08-06-2010 10:14:

Originally posted by mostrielo
Ho letto l'input e l'ho messo in un array; poi ho creato i due array ausiliari: distanze tra ganci e puntatori a Componente.
Durante la visita dell'albero di predecessore in predecessore, all'ultimo array, se la lunghezza del rettangolo è <= della distanza tra i ganci, viene assegnato il campo Componente del nodo (max corrente); per stampare i componenti il dispositivo basta un ciclo su questo array.


ah ok. quindi tu l'input l'hai gia messo nell'array..
io invece ho messo l'input nella lista e poi alla fine ieri sera ho messo anke le lunghezze in una lista ke poi distruggo.

tu l'hai finito? l'hai gia consegnato?


Posted by carla86 on 08-06-2010 11:55:

ke palle sono completamene bloccata!
e la cosa ke mi fa andare in bestia è ke ora ho
- una lista con le posizioni (so ke è giusta xke l'ho stampata).
- una lista con le distanze tra le posizioni (so ke è giusta xke l'ho stampata).
- l'albero rb ordinato per area...
e ora nn so come mettere in pratica il ragionamento ke in testa ce!!!
uff ke nervoso!!

ma voi l'avete finito?? a che punto siete??


Posted by mostrielo on 09-06-2010 10:19:

Allego un file di input e il relativo output: potete controllare con i vs. exe?


Posted by Guepe on 09-06-2010 11:24:

In quanti son riusciti a consegnarlo entro ieri?
mi direste ke strutture avete usato alla fine?
Grazie


Posted by Spr1gg4N on 09-06-2010 11:27:

Io ho consegnato ieri e ho utilizzato solo RB alberi e liste concatenate


Posted by Spr1gg4N on 09-06-2010 15:16:

Sapete per caso se la data di esposizione del progetto la pubblicheranno qui ( http://homes.dsi.unimi.it/~aguzzoli/algo.htm ) oppure da qualche altra parte?


Posted by dede on 11-06-2010 18:50:

Originally posted by Spr1gg4N
Io ho consegnato ieri e ho utilizzato solo RB alberi e liste concatenate


idem


Posted by BeppeGoal on 12-06-2010 18:50:

Scusate ma secondo voi, ammesso di aver passato il progetto ed essere ammessi all'orale, quando sarà indicativamente il colloquio? Questa o la prossima settimana? Di solito quanti giorni passano?


Posted by Guepe on 14-06-2010 18:20:

Qualcuno che non è riuscito a consegnare il progetto l'8 sta tentando di consegnarlo il 24?
Per la funzione estensione c'è da implementare un modello matematico che calcola l'unione delle estensioni dei componenti che non è difficile...di più.
Per ora con un mio amico siamo riusciti a capire il funzionamento di quando ci sono due componenti che si sovrappongono, il problema si crea quando ci si scontra con una sovrapposizione multipla....


Posted by Guepe on 19-06-2010 15:35:

Forse è una domanda stupida ma mi è venuto un dubbio.
Quando dice che il programma deve leggere da standard input stdin
e scrivere su standard output, vuol dire che il prof testerà il programma eseguendolo cosi:

componentielettroniche < stdin.txt >stdout.txt

o dobbiamo noi usare solo fscanf e fprintf in modo da farglielo leggere e scrivere direttamente senza che gli dia l'input e l'output?


Posted by Spr1gg4N on 19-06-2010 17:00:

standard input = tastiera (ma ovviamente lo farà con la redirezione dell'input)

standard output = video

:D :D


Posted by kermit63 on 21-06-2010 13:02:

vorrei usare l'implementazione del prof degli alberiRB, ma non riesco a capire (C non e' il mio forte) cosa passare come terzo argomento in un eventuale main di prova alla funz inorder.
qualcuno puo' illuminarmi?

void inord(rbnode *p, rbnode *nil, void (*op)(rbnode *))

{

if(p != nil) {

inord(p->left,nil,op);

(*op)(p);

inord(p->right,nil,op);

}

}



void inorder(rbtree *p, void (*op)(rbnode *))

{

inord(p->root, p->nil, op);

}


All times are GMT. The time now is 14:35. Pages (9): « First ... « 4 5 6 7 [8] 9 »
Show all 127 posts from this thread on one page

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