Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 2, 9 CFU => Topic started by: Simone Faro on 07-06-2010, 09:35:32



Title: Estensione dei termini "lungo le scorciatoie"
Post by: Simone Faro on 07-06-2010, 09:35:32
Cari studenti,
visti i disagi dovuti agli errori presenti sul file di input (mea culpa  .bah) e visti gli errori presenti sui codici consegnati per la competizione  .penso, ho deciso di estendere i termini di consegna dell'elaborato alle ore 24:00 di mercoledì 9 giugno 2010.
Ho inoltre aggiornato i file di input e output, sul sistema di esercitazione, eliminando i bug relativi alle strade duplicate.
Avrete in questo modo il tempo di correggere i vostri errori e verificare la correttezza/ efficienza della vostra soluzione.
L'estensione è valida anche per gli studenti che non hanno consegnato o che non hanno neanche iniziato la competizione.
SF


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: Riki Chardo on 07-06-2010, 11:51:35
prof. ma sono tutti sbagliati :0 ? puo essere?


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: R3m on 07-06-2010, 11:54:47
io non credo che siano tutti sbagliati, alla fin fine il programma può funzionare anche senza che l'input sia corretto( se uno è particolarmente bravo e ha una mentre che lavora in maniera astratta).

Per quanto riguarda i tempi, io direi di pubblicarli in un topic, dato che nel sistema di esercitazione i primi 3 avranno il sorgente visibile da chiunque...


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: XDnl on 07-06-2010, 12:01:06
Ragazzi, il mio programma differisce dal nuovo output dato dal prof.
Sto ancora indagando (ho costruito l'albero su carta XD) ma sembra che il mio output sia corretto.
ripeto, ancora sto facendo "indagini".

Per quanto riguarda i tempi, io direi di pubblicarli in un topic, dato che nel sistema di esercitazione i primi 3 avranno il sorgente visibile da chiunque...
Non ho capito bene


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: R3m on 07-06-2010, 12:08:33
Dato che il prof ha aumentato il tempo di consegna...mettere i sorgenti visibili a chiunque potrebbe aiutare qualcuno a ottenere un programma migliore/corretto. Mettendo in un topic i tempi si vedrebbe solo matricola e tempo di esecuzione ( senza link, per intenderci )

EDIT:
Ma hai costruito l'albero di un file di 1,5 mb su carta?  :"-(


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: XDnl on 07-06-2010, 12:12:49
Dato che il prof ha aumentato il tempo di consegna...mettere i sorgenti visibili a chiunque potrebbe aiutare qualcuno a ottenere un programma migliore/corretto. Mettendo in un topic i tempi si vedrebbe solo matricola e tempo di esecuzione ( senza link, per intenderci )

EDIT:
Ma hai costruito l'albero di un file di 1,5 mb su carta?  :"-(
No xD solo quelli visitati che sono mooolti di meno.
Comunque ragazzi i miei sospetti aumentano. A breve posterò un'immagine dell'albero (XD), così vediamo di ragionare insieme ok?  :-OK  :-)|  :pray

edit: a breve si fa per dire XD ci vorrà un po' di tempo per disegnarlo


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: atrix0ne on 07-06-2010, 12:45:26
ok,ragioniamo insieme  .wink


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: Riki Chardo on 07-06-2010, 12:46:37
bravo disegna l'albero.
PS. anche il mio sembra essere corretto non ho idea di dove possa essere l'errore.


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: Dario Z on 07-06-2010, 12:58:05
 .ciaociao Buongiorno ragazzi! Concordo con tutti voi visto che anche il mio algoritmo sembra essere corretto ma l'output differente! Forse una sbagliata interpretazione di qualche punto nel testo dell'esercizio?  .penso In un grossolano tentativo di costruire manualmente l'albero dei soli nodi del cammino ho ottenuto un 266, quindi attendo la costruzione di un albero da parte di qualcun altro!


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: XDnl on 07-06-2010, 13:31:01
Ragazzi ecco a voi l'albero
Allora, i nodi "rossi" sono quelli in cui c'è un lavoro in corso.
Il numeretto è l'id della strada ovviamente.
Accanto ai nodi c'è scritto il tempo di percorrenza in secondi.

http://localhostr.com/files/87a058/albero%20completo.png

Ecco i passi del mio algoritmo:
1) Routing Gege->Vigata
448 going parent taking 9secs
414 going parent taking 4secs
291 (can go both)  going parent taking 10secs
221 going parent taking 4secs
154 going parent taking 6secs
145 (can go both)  going parent taking 6secs
144 going parent taking 3secs
135 (can go both)  going parent taking 9secs
79 (can go both)  going parent taking 2secs
61 (can go both)  going parent taking 8secs
40 (can go both)  going parent taking 10secs
34 going parent taking 7secs
28 going parent taking 11secs
21 work in progress going sibling + parent taking 7secs
16 (can go both)  going parent taking 11secs
15 (can go both)  going parent taking 4secs
13 work in progress going sibling + parent taking 12secs
11 (can go both)  going parent taking 7secs
10 going parent taking 5secs
135 secondi totali

2) Dal punto d'incontro risalgo fino al nodo 15 (NON vigata, che è il 10)
Routing meetPoint->commonradix
831 going parent taking 6secs
718 going parent taking 5secs
487 (can go both)  going parent taking 4secs
296 going parent taking 9secs
230 (can go both)  going parent taking 11secs
64 (can go both)  going sibling + parent taking 7secs
53 (can go both)  going parent taking 10secs
15 (can go both)  going parent taking 4secs

15 is the common radix
Totale: 42 secondi, escludendo le ultime due righe (ora vi spiego perchè).

Ora, se osservate il nodo 15 è in comune ai due percorsi. Una volta arrivato da Gegè (135 secondi) dovrei risalire fino al nodo 15, solo che mi conviene prendere la scorciatoia dal nodo 16, passando direttamente dal 53 (nel file non c'è la freccia l'ho dimenticata). Dopodichè scendo dal 53 fino al punto d'incontro.
Tempi:
  • Vigata->Gegè: 135 secondi
  • Gegè->Fine nodo 16 (quindi SENZA percorrerlo): 96 secondi
  • Scorciatoia: 5 secondi
  • Fine nodo 53-> Punto d'incontro: 42 secondi
Totale 278 secondi (che è il mio output).
Ora mi è sembrato che l'algoritmo del prof, invece di prendere la scorciatoia, arrivi fino al nodo 15 (quindi percorrendo il 16 e poi il 53, scendendo verso il punto d'incontro). Solo che non mi viene 299 ma 294 tipo (non ricordo bene  :-)|).

A voi la parola!  :-OK




Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: R3m on 07-06-2010, 13:47:31
Dopo un'accurata analisi (copia->incolla->esegui xD) posso dirti che anche a me risulta 135secondi da vigata a gege, e 278 secondi il tempo totale.


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: Riki Chardo on 07-06-2010, 14:35:43
Dopo un'accurata analisi (copia->incolla->esegui xD) posso dirti che anche a me risulta 135secondi da vigata a gege, e 278 secondi il tempo totale.


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: Dario Z on 07-06-2010, 14:41:18
Dopo un'accurata analisi posso dirti che anche a me... ...risulta...  ...278 secondi il tempo totale.


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: Riki Chardo on 07-06-2010, 16:34:08
ho disegnato l'albero visitato su carta con rispettivi fratelli ed è risultato uguale a quello di danilo... il tempo è uguale a quello nostro. Quindinon ci sono dubbi; conclusione : I nostri prog. danno l'output CORRETTO.


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: atrix0ne on 07-06-2010, 16:40:32
anche il mio programma produce il vostro stesso OUTPUT :-OK :[Emoticon] PC Asd: quindi??? .penso


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: XDnl on 07-06-2010, 16:46:47
Domandone: nel file di input il punto d'incontro e la casa di Gegè Miceli si trovano sempre alla fine della strada?
Dagli input finora forniti sembra di si, ma vorrei essere sicuro...  .sisi


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: Riki Chardo on 07-06-2010, 16:48:34
nn ti saprei dire... fino ad ora si...


Title: NullPointerException
Post by: XDnl on 08-06-2010, 17:38:27
Salve professore,
crediamo di aver capito perchè molti nostri algoritmi non funzionano dando NullPointerException.
Il fatto è dovuto alla lettera accentata del nome Gegè Miceli, che non viene gestita allo stesso modo di Microsoft Windows sul sistema operativo Linux.
I nostri codici infatti utilizzano la funzione skip per saltare la riga in questione, solo che il numero di caratteri da saltare risulta diverso tra windows e linux. Insieme ad altri colleghi abbiamo provato la seguente soluzione:
Code:
// Salto i caratteri per arrivare al '.'
input.skip(1 + 58);
// ... leggo la strada
che su windows funziona ma su linux no (bisognerebbe scrivere input.skip(58));
La seguente versione
Code:
// Salto i caratteri per arrivare al '.'
while (input.read() != '.');
// --- leggo la strada
invece funziona sia su windows che su linux.
Il problema dunque sembra essere dovuto alla codifica e non a casi speciali non gestiti.





Title: Re:NullPointerException
Post by: atrix0ne on 08-06-2010, 17:42:08
Salve professore,
crediamo di aver capito perchè molti nostri algoritmi non funzionano dando NullPointerException.
Il fatto è dovuto alla lettera accentata del nome Gegè Miceli, che non viene gestita allo stesso modo di Microsoft Windows sul sistema operativo Linux.
I nostri codici infatti utilizzano la funzione skip per saltare la riga in questione, solo che il numero di caratteri da saltare risulta diverso tra windows e linux. Insieme ad altri colleghi abbiamo provato la seguente soluzione:
Code:
// Salto i caratteri per arrivare al '.'
input.skip(1 + 58);
// ... leggo la strada
che su windows funziona ma su linux no (bisognerebbe scrivere input.skip(58)); .quoto
La seguente versione
Code:
// Salto i caratteri per arrivare al '.'
while (input.read() != '.');
// --- leggo la strada
invece funziona sia su windows che su linux.
Il problema dunque sembra essere dovuto alla codifica e non a casi speciali non gestiti.






Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: Dario Z on 08-06-2010, 17:46:36
 .quoto


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: R3m on 08-06-2010, 17:49:16
Dato che ci sono quoto anche io  :[Emoticon] PC Asd:


Title: Re:Estensione dei termini "lungo le scorciatoie"
Post by: Flyer on 08-06-2010, 22:28:38
Anche a me risulta 278  :boh


Title: Re:NullPointerException
Post by: Riki Chardo on 09-06-2010, 17:31:35
Salve professore,
crediamo di aver capito perchè molti nostri algoritmi non funzionano dando NullPointerException.
Il fatto è dovuto alla lettera accentata del nome Gegè Miceli, che non viene gestita allo stesso modo di Microsoft Windows sul sistema operativo Linux.
I nostri codici infatti utilizzano la funzione skip per saltare la riga in questione, solo che il numero di caratteri da saltare risulta diverso tra windows e linux. Insieme ad altri colleghi abbiamo provato la seguente soluzione:
Code:
// Salto i caratteri per arrivare al '.'
input.skip(1 + 58);
// ... leggo la strada
che su windows funziona ma su linux no (bisognerebbe scrivere input.skip(58));
La seguente versione
Code:
// Salto i caratteri per arrivare al '.'
while (input.read() != '.');
// --- leggo la strada
invece funziona sia su windows che su linux.
Il problema dunque sembra essere dovuto alla codifica e non a casi speciali non gestiti.




Esatto Anch'io ho gestito tutti i casi, anche quelli con i posti ubicati sia allinizio ke alla fine delle strade; e ho testato tutti i possibili casi. Attendiamo risp dal prof.