 | |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
[Algoritmi e strutture dati - Torelli] Progetto 6 aprile Clicca QUI per vedere il messaggio nel forum |
Skanky |
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 |
Skanky |
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 |
loreste |
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! |
Moffone |
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! |
loreste |
Ok!!!|:D
Ho passato il test di Moffone. |
Moffone |
loreste se ne hai uno anche tu lo posti?
io ne sto facendo un altro ma è uno sbattimento farli!
grazie
ovviamente l'invito è aperto a tutti.... |
tom80 |
Per SkanKy.
Le liste di adiacenza sono semplicemente liste di liste,anche se son oun po' complicate da gestire.
A presto.
Buon progetto a tutti.
Ciao ciao Tom 80 |
tom80 |
Ciao Loreste.Tu per realizzare tutto il progetto hai usato soltanto una lista,non le liste di adiacenza?.
A presto.
Ciao ciao Tom 80 |
Moffone |
secondo test!
INPUT:
s 3 5
f 1 1 5 5 2 3
f 2 3 3 5 7 7
f 3 3 4 5 3 5
p 3 4
g 1 1 5 5
G
i 2 3 3 5 3 3 4 5
f 2 2 4 4 6 8
f 2 2 5 5 5 1
e 2 3 3 5
G
f 1 7 20 15 21 8
f 2 8 7 12 0 0
f 6 11 12 45 98 65
f 5 10 7 12 2 4
p 6 11
g 1 7 20 15
G
f 6 11 7 12 1 1
G
i 3 3 4 5 6 11 7 12
i 6 11 7 12 3 3 4 5
i 6 11 7 12 5 10 7 12
q
OUTPUT:
3 4
1
2
(2, 3, 4, 5)
(2, 2, 4, 4) non inseribile
3
(6, 11, 12, 45) non inseribile
19 5
2
3
4
(1, 1, 20, 15)
(1, 1, 20, 15)
(5, 10, 7, 12) |
Skanky |
Originally posted by Moffone
metto un test!
(3, 4, 12, 15)
1
(4, 4, 12, 15)
1
2 1
4
Fatemi sapere se vi vengono gli stessi risultati!
A me vengono tutti uguali tranne il primo inviluppo che mi viene (4,4,12,15) invece di (3, 4, 12, 15).
Ora ricontrollo
grazie del test |
Moffone |
(4, 4, 12 15) non può essere l'inviluppo perchè è un filtro-rettangolo non inseribile. Interseca (3, 13, 5, 15)
prova a fare il disegno e lo vedi subito |
loreste |
Per Moffone
Sei sicuro del secondo test?
Il secondo e terzo inviluppo a me risponde (1 3 20 15), però non ho controllato a mano se è un baco del mio progetto o meno.
Puoi confermarmi?
Tks |
Skanky |
Originally posted by Moffone
(4, 4, 12 15) non può essere l'inviluppo perchè è un filtro-rettangolo non inseribile. Interseca (3, 13, 5, 15)
prova a fare il disegno e lo vedi subito
Si si hai ragione...era un maledetto baco
Grazie per avermelo fatto beccare |
Moffone |
Sono sicuro!
prima faccio il disegno e poi genero l'input.
I due inviluppi, come avrai notato, sono praticamente lo stesso. Hanno i filtri invertiti!
Purtroppo non ho lo scanner altrimenti te lo avrei mandato |
tetrinet |
Come gestite il caso in cui un filtro ha (x,y) = (0,0)? L'mcd e' zero per cui non si puo' utilizzare come divisore; lasciate a zero?
Avete incontrato qualche altro caso particolare sulle polarita'? |
Skanky |
Ciao, una curiosità per quelli che han finito o quasi.
Qunati kB è grosso il vostro file sorgente? |
Moffone |
14.357 byte
603 righe |
Moffone |
Originally posted by tetrinet
Come gestite il caso in cui un filtro ha (x,y) = (0,0)? L'mcd e' zero per cui non si puo' utilizzare come divisore; lasciate a zero?
Avete incontrato qualche altro caso particolare sulle polarita'?
Lascio 0 0
lo dice anche nel testo:
La polarità nulla è rappresentata da (0, 0). |
loreste |
21760 byte
590 righe
Però non capisco il paragone, perchè dipende da quanto uno ha commentato il codice, non ho fatto il conto ma se dovessi eliminare i commenti potrei arrivare a 500 righe, inoltre lascio una riga vuota tra una funzione e l'altra, circa 5 righe vuote tra i vari #import e i prototipi di funzione. |
Skanky |
Originally posted by loreste
21760 byte
590 righe
Però non capisco il paragone, perchè dipende da quanto uno ha commentato il codice, non ho fatto il conto ma se dovessi eliminare i commenti potrei arrivare a 500 righe, inoltre lascio una riga vuota tra una funzione e l'altra, circa 5 righe vuote tra i vari #import e i prototipi di funzione.
;-( che tristezza io ho il doppio delle vostre righe..ok sono stato largo e c' è molto commento ..pero' il doppio !!!
Bravi a voi |
loreste |
Ho eliminato del codice che mi sono reso conto era di troppo:D
Ed inoltre era bacato, non passavo il secondo test di Moffone
Ora sono a 565 righe (Con commenti)
Ho passato i 2 test di Moffone + il test del progetto, spero che sia a posto.
Se qualche altra persona a fatto dei file di test può pubblicarli???? |
loreste |
Errore gravissimo ho messo un a senz'acca:( |
Capitan Harlock |
Beat voi che avete già finito, io ho ancora diversi problemi con la codifica anche se so come fare.
Toglietemi un dubbio: io sto usando un'unica lista come alcuni di voi. Quando inserisco un rettangolo con le stesse coordinate di uno già presente sul piano, va messo o va scartato?
In questo caso nella mia lista avrò 2 rettangoli uguali, ognuno con la sua polarità?
Se si, quando vado a cancellare il rettangolo con quelle coordinate, li tolgo entrambi?
Grazie. |
tetrinet |
Originally posted by Moffone
Lascio 0 0
lo dice anche nel testo:
Hai ragione mi era sfuggito. Grazie. |
tetrinet |
Per calcolare il mcd ho usato una funzione ricorsiva, come penso molti di voi; risulta difficile pero' calcolarne la complessita' voi che dite? |
Skanky |
Originally posted by Capitan Harlock
Beat voi che avete già finito, io ho ancora diversi problemi con la codifica anche se so come fare.
Toglietemi un dubbio: io sto usando un'unica lista come alcuni di voi. Quando inserisco un rettangolo con le stesse coordinate di uno già presente sul piano, va messo o va scartato?
In questo caso nella mia lista avrò 2 rettangoli uguali, ognuno con la sua polarità?
Se si, quando vado a cancellare il rettangolo con quelle coordinate, li tolgo entrambi?
Grazie.
1.Si li devi inserire tutti e due.
2.Si cancellano tutti i rettangoli delle coordinate che seueno la 'e' (es:e 4 4 5 5 Cancella tutti i rettangoli di coord 4 4 5 5 )
ciao |
Skanky |
Originally posted by tetrinet
Per calcolare il mcd ho usato una funzione ricorsiva, come penso molti di voi; risulta difficile pero' calcolarne la complessita' voi che dite?
Io non sono nemmeno molto cpace di calcolare la complessità.
Cmq io ho usato algoritmo di euclide che c' è sul cormen, adesso devo controllare se c' è già scritta la complessità |
Moffone |
Test 3;
INPUT:
s 142 38
f 2 2 14 8 1 3
f 8 8 24 12 10 6
f 12 8 18 10 11 33
f 20 6 22 8 100 77
p 4 3
p 10 8
p 13 8
p 16 10
p 20 5
p 20 8
s 200 -250
f 14 5 20 8 7 -14
f 4 5 6 7 110 23
f 8 4 23 5 111 33
p 8 4
p 14 5
p 13 7
p 16 7
p 21 7
f 2 2 14 8 52 44
p 4 3
q
OUTPUT:
35 8
5 1
32 5
5 1
71 19
34 61
(8,4,23,5) non inseribile
-5 2
-1 0 /*(oppure 1,0) ?*/
-5 2
-1 1
13 9
2 1 |
tetrinet |
Originally posted by Moffone
-1 0 /*(oppure 1,0) ?*/
A me viene
1 0
ma probabilmente
-1 0
e' piu' corretto perche' il mcd tra -4 e 0 e' 4, non -4 come ritorna l'algoritmo di Euclide giusto?
Il problema e' che si aspetta interi positivi in ingresso secondo voi bisogna tener conto di questa cosa? |
loreste |
Stavolta non ho passato il terzo test di Moffone, però non capisco se ricevo "s 142 38" poi "p 4 3" in quel punto ho solo il filtro 2 2 14 8 con polarità 1 3 percui faccio142 - 1 = 141 e 38 - 3 = 35
come fa ad uscire 35 8???????
Dov'è che sbaglio:? |
Moffone |
Il test non lo ho idateo io però a me vengono gli stessi risultati!
Loreste mi sa che sbagli perche il segnale devi polarizzarlo!
142 38 = 71 19
71 - 1= 70 19 - 3 = 16
35 8
Quando calcolate p 14 5, come risultato vi da -1 0 oppure 1 0? |
Bloody |
quanto vi viene in totale la complessità del calcolo del grado di annidamento, per curiosità? |
Moffone |
Non ne ho idea, ma verrà un numeraccio!
Anche perchè lho fatto ricorsivo e quindi è un macello da calcolare!!!
sparerò a caso
O( n^n )
:) |
Skanky |
[
Quando calcolate p 14 5, come risultato vi da -1 0 oppure 1 0? [/B][/QUOTE]
citando dalle specifiche
"si noti che la polarità specificata da una coppia della forma(0,y) è (0,1)mentr ecoppie della forma (x,0) è (1,0)"
quindi è 1 0
secondo me |
Moffone |
Originally posted by tetrinet
A me viene
1 0
ma probabilmente
-1 0
e' piu' corretto perche' il mcd tra -4 e 0 e' 4, non -4 come ritorna l'algoritmo di Euclide giusto?
Il problema e' che si aspetta interi positivi in ingresso secondo voi bisogna tener conto di questa cosa?
secondo me è giusto 1 0
nel testo dice che se ci trova nel caso (x, 0) allora la polarità e (1, 0) |
Skanky |
Originally posted by Moffone
Il test non lo ho idateo io però a me vengono gli stessi risultati!
Loreste mi sa che sbagli perche il segnale devi polarizzarlo!
142 38 = 71 19
71 - 1= 70 19 - 3 = 16
35 8
Quando calcolate p 14 5, come risultato vi da -1 0 oppure 1 0?
Si anche io concordo i risultati sono giusti |
Skanky |
Originally posted by tetrinet
A me viene
1 0
ma probabilmente
-1 0
e' piu' corretto perche' il mcd tra -4 e 0 e' 4, non -4 come ritorna l'algoritmo di Euclide giusto?
Il problema e' che si aspetta interi positivi in ingresso secondo voi bisogna tener conto di questa cosa?
Si ne devi tenr conto se no l'algo di euclide sballa..
Cmq basta che gli passo come argomenti il valore assoluto
euclid(abs(x),abs(y))
e poi ti ricordi di aggiustare i segni |
Capitan Harlock |
Condivido la storia dei valori assoluti e di aggiustare i segni per mcd.
io faccio così:
- 0 0 ---> 0 0
- 0 -y oppure 0 y ----> 0 1
- x 0 oppure -x 0 ----> 1 0
il resto mi va tutto, non ho usato ne ricorsione ne algoritmo di euclide, se avete bisogno vi dico come ho fatto (poi magari scopro che sono un babbazzo e mi trovate l'errore).
Invece, ho un dubbio su una cosa: alcuni di voi mi hanno detto che se inserisco due rettangoli uguali o + nella mia struttura (in questo caso una lista), li memorizzo tutti ognuno con la sua polarità, se li cancello li cancello tutti ecc.
Domanda:
se voglio calcolare il grado di un rettangolo che sovrapposto ne ha uno perfettamente identico, quello identico lo considero o no?
Ad esempio se ho A B C con A e B uguali e C contenuto in B ( e quindi in A), se voglio calcolare il grado di A cosa viene, 2 ??
E se calcolo il grado di B cosa viene, sempre 2 ?? (nel senso che essendo uguali vederne uno sopra l'altro in realtà è interscambiabile)
Ciao |
tetrinet |
Originally posted by Skanky
Si ne devi tenr conto se no l'algo di euclide sballa..
Perche' dici che sballa? Si possono risolvere i casi x,0 e i casi 0,x a monte, per il resto quando potrebbe sbagliarsi?
Originally posted by Skanky
Cmq basta che gli passo come argomenti il valore assoluto
euclid(abs(x),abs(y))
e poi ti ricordi di aggiustare i segni
Cioe' lui ti restituira' sempre due positivi, poi tu metti negativo x nel caso in cui x o y fossero negativi quando sono stati inviati a euclid()? |
tetrinet |
Originally posted by Moffone
secondo me è giusto 1 0
nel testo dice che se ci trova nel caso (x, 0) allora la polarità e (1, 0)
Giusto, hai ragione, tnx. |
Skanky |
Originally posted by Capitan Harlock
[
Ad esempio se ho A B C con A e B uguali e C contenuto in B ( e quindi in A), se voglio calcolare il grado di A cosa viene, 2 ??
Ciao [/B]
No viene 1. perchè sue rettangoli uguali non si includono propriamente e quinid se A = B
A non include B
e B non include A |
Capitan Harlock |
Originally posted by Skanky
No viene 1. perchè sue rettangoli uguali non si includono propriamente e quinid se A = B
A non include B
e B non include A
Ok, ho capito, quindi quando vado a contare quelli contenuti nel rettangolo di cui voglio calcolare il grado, considero solo quelli "dentro" e poi vado a vedere la catena + lunga.
Dovrebbe essere così, se ho capito, spero di non sbagliare.
Grazie mille. |
Moffone |
Io quando ho 2 filtri uguali sommo le polarità, senza polarizzare la somma. Non ho problemi ne nell'anidamento ne per il calcolo della polarità.
Nel testo non dice esplicitamente di mantenere tutti i filtri, quindi direi che conviene fare così a tutti. Almeno non avete casi particolari.
P.S. scusate gli errori di ortografia nei post precedenti |
loreste |
Ok, grazie al terzo test di Moffone ho trovato un'altro baco.
Ora passo i 3 test di Moffone + il test del progetto, sarà definitivamente a posto:?
Ho fatto tutto in 542 righe di codice (compreso il commento).
Voi in quante? |
Skanky |
Originally posted by loreste
Ok, grazie al terzo test di Moffone ho trovato un'altro baco.
Ora passo i 3 test di Moffone + il test del progetto, sarà definitivamente a posto:?
Ho fatto tutto in 542 righe di codice (compreso il commento).
Voi in quante?
Ma io credo che potrebbero bastare, perchè ogni test si accanisce con diverse funzioni, 1 e 2 sui gradi il 3 sulle polarizzazioni.
Grazie ancora a moffone che mi ha fatto beccare 2 bachi.
Io sono a 1100 righe (fischi e cori dalla curva).
Chi ha finito pensa di consegnare appena finita la relazioncina o attendete venerdi? |
tetrinet |
Sul libro di testo ho verificato che il tempo di esecuzione dell'algoritmo di Euclide su due interi a e b e' O(log b), cioe' dipende da quanto e' grande b.
Ora, come e' possibile esprimere la complessita' in funzione del numero di filtri, visto che l'analisi delle altre funzioni (alcuni delle quale utilizzano mcd) e' espressa in questo modo?
Cioe' ad es. come integrare nell'analisi della complessita' dell'inserimento di un filtro quella del calcolo del mcd? |
tetrinet |
Originally posted by Skanky
Chi ha finito pensa di consegnare appena finita la relazioncina o attendete venerdi?
Io anche nell'ipotesi in cui finissi tutto prima consegno Venerdi'. |
Skanky |
Originally posted by tetrinet
Sul libro di testo ho verificato che il tempo di esecuzione dell'algoritmo di Euclide su due interi a e b e' O(log b), cioe' dipende da quanto e' grande b.
Ora, come e' possibile esprimere la complessita' in funzione del numero di filtri, visto che l'analisi delle altre funzioni (alcuni delle quale utilizzano mcd) e' espressa in questo modo?
Cioe' ad es. come integrare nell'analisi della complessita' dell'inserimento di un filtro quella del calcolo del mcd?
Beh cmq tu puoi decidere di quali algo (definiti i piu importanti) fare il calcolo della complessità.
Per meglio dire io non penso di fare il calcolo per tutte le funzioni, cercheò bene sul libro i riferimenti alla complessità dell'attraversamento di una lista, mettero' l'algo di euclide e quello per l'inviluppo e quello per trovare il grado del filtro che tra l'altra mi sa che verrà fuori la stessa complesità , visto che sono tutte funzioni ricorsive..però ora non so bene devo un po' vedere, di sicuro non voglio fare una relazione prolissa che mai nessuno leggerà... |
Moffone |
Originally posted by tetrinet
Io anche nell'ipotesi in cui finissi tutto prima consegno Venerdi'.
Anche io |
tetrinet |
Ho sviluppato su Windows (lcc); adesso ho provato il codice su Linux (gcc con opzioni -Wall e -ansi); grado di annidamento e polarita' di un punto mi danno valori completamente diversi da quelli che ottengo su Windows! Il grado piano poi mi da' sempre 1075018897.....
Le altre funzioni sembrano invece ok.
Avete qualche idea di quale sia il motivo?
Grazie. |
Moffone |
Anche a me è capitato lo stesso problema con gli esercizi di Sistemi Operativi. La soluzione potrebbe essere che fai stampare un indirizzo invece del valore contenuto in esso! Per quello ti stampa sempre lo stesso valore, che oltretutto è un numeraccio!
Non ti da nessun warning quando compili -ansi e -Wall? |
tetrinet |
Originally posted by Moffone
Anche a me è capitato lo stesso problema con gli esercizi di Sistemi Operativi. La soluzione potrebbe essere che fai stampare un indirizzo invece del valore contenuto in esso! Per quello ti stampa sempre lo stesso valore, che oltretutto è un numeraccio!
Non ti da nessun warning quando compili -ansi e -Wall?
No nessun warning, non riesco proprio a capire....secondo me ha qualcosa a che fare con mcd controllero' meglio questa parte.
A nessuno e' capitata la stessa cosa su questo progetto? |
Skanky |
Originally posted by tetrinet
Ho sviluppato su Windows (lcc); adesso ho provato il codice su Linux (gcc con opzioni -Wall e -ansi); grado di annidamento e polarita' di un punto mi danno valori completamente diversi da quelli che ottengo su Windows! Il grado piano poi mi da' sempre 1075018897.....
Le altre funzioni sembrano invece ok.
Avete qualche idea di quale sia il motivo?
Grazie.
Strano!!
Avevi messo la proprieta only Ansi quando hai creato il progetto in lcc?
Mi sa che devo provare pure io,sapete se in silab c' è gcc? |
tetrinet |
Originally posted by Skanky
Strano!!
Avevi messo la proprieta only Ansi quando hai creato il progetto in lcc?
Mi sa che devo provare pure io,sapete se in silab c' è gcc?
Si' certo anche in lcc c'era ansi e warning all. |
tetrinet |
Originally posted by tetrinet
Si' certo anche in lcc c'era ansi e warning all.
Ho risolto: erano un paio di variabili che no n avevo inizializzato a zero, probabilmente lcc e' piu' permissivo e me li inizializza in automatico. |
tetrinet |
Qualche domanda veloce :)
Io avevo scritto il programma distinguendolo in tre file, sul progetto pero' mi sono accorto che parla di due file, intendendo relazione e sorgente. Quindi e' richiesto un file solo per il sorgente?
Come dichiarate voi le coordinate dei filtri? Int oppure qualcosa di piu' capiente?
E' opportuna un'opzione di visualizza menu funzioni come ha fatto Fiorentini nei suoi esempi? |
tetrinet |
Originally posted by Skanky
Beh cmq tu puoi decidere di quali algo (definiti i piu importanti) fare il calcolo della complessità.
[...]
Si' hai ragione pero' ad esempio non riusciro' a fare un calcolo della complessita' dell'operazione di inserimento filtri nel suo complesso, perche' ho il t. di esec. di mcd che varia in base alla grandezza di uno degli interi in ingresso e il t. di esecuzione dell'algoritmo vero e proprio che varia in funzione del nunmero di filtri che ci sono sul piano in quel momento.
Lo stesso vale per altre operazioni. |
Moffone |
Originally posted by tetrinet
Quindi e' richiesto un file solo per il sorgente?
direi di si
Come dichiarate voi le coordinate dei filtri? Int oppure qualcosa di piu' capiente?
unsigned int, i negativi non servono |
loreste |
Scusate la mia ignoranza in linux (l'ho installato da una settimana perchè sto seguendo Sis Op), ma quando copio dal Floppy all'HD mi crea il file nomefile.c*, perchè???????
Cosa è l'asterisco?????
Naturalmente ho scoperto che non compila un C***O, però da windows l'ho compilato con gcc -Ansi e -Wall.
Help me!!!! |
tetrinet |
Originally posted by Moffone
unsigned int, i negativi non servono
Giusto, tnx!
Dite allora che non ci saranno obiezioni sul fatto che gli int hanno un range di coordinate limitato (ok, lo stesso vale per gli altri tipi, ma piu' limitato di long o float). |
Skanky |
Originally posted by loreste
Scusate la mia ignoranza in linux (l'ho installato da una settimana perchè sto seguendo Sis Op), ma quando copio dal Floppy all'HD mi crea il file nomefile.c*, perchè???????
Cosa è l'asterisco?????
Naturalmente ho scoperto che non compila un C***O, però da windows l'ho compilato con gcc -Ansi e -Wall.
Help me!!!!
Sinceramente non capisco l'asterisco..
Cmq io oggi sono stato in silab e ho provato a compilare e runnare il mio progetto su linux del lab ed è andato tutto liscio, quindi se ti capita di passare in diaprtimento provalo li che non avrai grossi problemi
ciao |
Capitan Harlock |
Ciao ragazzi, intanto ringrazio tutti quelli che mi hanno dato dritte su come risolvere il progetto e chi ha messo i test perchè mi sono stati molto utili nel trovare diversi bug.
Ho quasi finito e sto facendo gli ultimi controlli.
In particolare ho bisogno di chiarirmi qualche altro dubbio sull'inserimento dei rettangoli.
Posso ad esempio inserire due rettangoli con queste coordinate:
2 2 10 10 e 2 2 5 10 ?
Se ho solo questi due nel mio piano e chiedo il grado di 2 2 10 10, il risultato sarà 1, giusto o sbaglio?
Magari la domanda è stupida, però mi sono accorto che avevo alcuni bug nei confronti facendo il test del prof e quelli qui sul forum (ora li passo tutti, spero siano sufficienti uniti quelli che sto facendo per i fatti miei) |
loreste |
Per Capitan Harlock
Si è giusto quanto dici.
Invece io ho un problema con linux, sono riuscito a compilare, ma quando lancio il comando ls vedo il file a.out*, vorrei capire cosa è questo asterisco, e soprattutto come lanciare il programma, perche se io lancio il seguente comando a.out<filtri.txt mi dice che il comando a.out non esiste.
Anche il file di testo (creato sotto win) quando lancio il comando ls lo visualizza come filtri.txt*,
Io lancio tutto da Konsole, cosa sbaglio?????? |
tetrinet |
Ecco una prova di input:
s 3 5
f 3 21 12 27 15 -512
f 5 10 25 20 0 1
f 6 15 12 18 10 10
f 7 16 8 17 15 13
f 15 15 24 19 7 7
f 3 4 29 21 7 1
f 16 16 18 18 25 14
f 5 6 13 9 3 8
f 6 7 8 9 51 8
f 6 10 14 14 3 10
f 16 5 22 9 8 11
f 3 25 10 27 1 0
f 6 10 14 19 5 4
f 3 21 15 30 18 6
f 16 16 18 18 12 14
g 3 21 12 27
g 5 10 25 20
g 6 15 12 18
g 7 16 8 17
g 15 15 24 19
g 3 4 29 21
g 16 16 18 18
g 5 6 13 9
g 6 7 8 9
g 6 10 14 14
g 16 5 22 9
g 3 25 10 27
g 6 10 14 19
g 3 21 15 30
G
e 6 10 14 19
e 5 6 13 9
e 3 21 15 30
e 3 21 15 30
g 3 4 29 21
i 6 7 8 9 16 5 22 9
i 3 25 10 27 16 5 22 9
i 3 21 12 27 16 16 18 18
i 7 16 8 17 16 16 18 18
i 6 10 14 14 16 5 22 9
i 6 10 14 14 15 15 24 19
p 6 7
p 6 18
p 15 17
s 50 222
p 100 0
f 3 21 15 30 18 6
p 12 21
p 17 17
p 15 17
q
e l'output:
1
3
1
0
1
4
0
1
0
0
0
0
2
2
5
3
(6, 5, 22, 9)
(3, 4, 29, 27)
(3, 4, 29, 27)
(6, 15, 24, 19)
(5, 5, 25, 20)
(6, 10, 24, 19)
55 4
-5 2
-5 2
25 111
-30 403
-14 87
17 108
Se qualcuno ha qualcos'altro posti, anche un esempio stupido puo' essere utile. |
Moffone |
Originally posted by loreste
Per Capitan Harlock
Si è giusto quanto dici.
Invece io ho un problema con linux, sono riuscito a compilare, ma quando lancio il comando ls vedo il file a.out*, vorrei capire cosa è questo asterisco, e soprattutto come lanciare il programma, perche se io lancio il seguente comando a.out<filtri.txt mi dice che il comando a.out non esiste.
Anche il file di testo (creato sotto win) quando lancio il comando ls lo visualizza come filtri.txt*,
Io lancio tutto da Konsole, cosa sbaglio??????
Se non sbaglio i file con l'asterisco sono quelli eseguibili, gli exe di win.
Per eseguire un pgm in linux, a meno che non sia in una cartella perticolare (che non ricordo qual'è), devi mettere ./ davanti al comando.
Nel tuo caso quindi ./a.out < filtri.txt
Spero di non avere detto troppe cazzate! |
tom80 |
Ciao Ragazzi.Anche io ho quasi finito.IO ho realizzato il progetto con le liste di adiacenza e sto cercando di risolvere un piccolo problema della funzione gradopiano.
Speriamo in bene.
Qualcuno ha fatto anche lui il progetto con le liste di adiacenza?
A presto.
Ciao ciao Tom 80 |
Moffone |
Originally posted by tetrinet
Ecco una prova di input:
....
Bel test! Mi ha trovato un errore!
Cmq l'ho passato! |
tetrinet |
Originally posted by Moffone
Bel test! Mi ha trovato un errore!
Cmq l'ho passato!
Nessun'altro ha qualche prova di input da postare? |
tetrinet |
A proposito di relazione e analisi della complessita': O(n) e' un limite superiore; omega(n) e' un limite inferiore e teta(n)? Io ho il libro in inglese, parla di tight bound vorrei sapere come viene tradotto in italiano.
Grazie. |
loreste |
Io ho consegnato ieri sera, sorgente e relazione.
Però ora ho un dubbio sulla relazione, se scandisco tutta la lista impiego tempo = n.
Avrei dovuto mettere O(n)?????????, ma O(n) significa "al più come n", mentre nel mio caso è sicuramente n.
Boh!!!!
Per me non le legge nessuno la relazione, si limita a vedere se va tutto o se ci sono errori, almeno spero:D
Ciao |
Moffone |
Io penso di consegnare venerdì!
Ho utilizzato una lista e volevo sapere se vi tornano questi risultati:
Inserimento= O(n) devo prima cercare se esite già un filtro nella lista
Eliminazione = O(n) devo ottenere il puntatore al filtro per poterlo eliminare altrimenti sarebbe O(1)
Inviluppo = O(n)
punto = O(n)
Annidamento= non l'ho ancora calcolato!
Vi tornano? achi ha usato una lista ovviamente! |
Bloody |
a me vengono + elevati, perchè poi devo inserire nelle liste di adiacenza di ognuno.
Però credo che la mia struttura sia diversa da quella di Moffone perchè ho usato liste di adiacenza...
un altro quesito: io ho 3 file in totale, uno per le procedure, uno con il main con dentro lo switch che legge l'input da txt e un header con le definizioni delle strutture e le intestazioni.
oltre alla relazione, dite che accetta anche così? Perchè altrimenti non so come gestire l'input... |
Moffone |
Copia le procedure nel file del main, sopra il main, e copia le definizioni della struttura dati nello stesso!
compila e vedi che va tutto a posto!
Nel testo dice di consegnare 2 file: la relazione e il codice!
Se vuoi fare "il diverso" problemi tuoi, io faccio come dice il prof, almeno su questo non ha da lamentarsi! |
Bloody |
si basta che funzia... |
joe.satriani |
qualcuno mi sa dare una mano su come fare il main? |
Bloody |
Si può fare la costruzione delle strutture dati, poi
puoi fare o una switch che a seconda del carattere letto invoca qualche procedura, oppure un while(1) con una break quando la lettera è q.
Faccio un'altra domanda: ma quando si polarizza il risultato della differenza tra il segnale e la somma delle distorsioni e i segni sono diversi, non bisogna moltiplicare entrambe le cifre per -1 come quando si polarizzano le singole distorsioni di ogni filtro??
Help!! |
marco.pozzi |
Posto un altro test. Non ho verificato NULLA, quindi occhio!
INPUT
s 100 100
f 13 12 87 86 -75 76
f 15 15 82 85 14 78
f 37 36 67 67 25 -72
f 30 29 73 73 -63 8
f 31 29 72 72 15 -48
f 3 3 103 98 0 -19
f 17 17 88 85 88 61
f 42 40 59 59 -32 92
f 49 48 50 51 31 -21
f 2 2 101 95 -70 56
f 32 34 68 70 98 31
f 46 45 55 55 99 26
f 17 17 86 83 -67 -26
f 105 105 196 194 -28 8
f 106 106 196 198 78 19
f 138 138 162 164 88 -77
f 130 131 170 174 8 56
f 102 102 202 202 -39 19
f 104 104 202 202 -3 -63
f 115 116 187 182 54 90
f 147 148 154 155 74 59
f 135 134 167 168 -44 -38
f 112 112 189 189 58 54
f 126 127 177 178 22 -46
f 150 149 153 151 -70 69
f 122 122 183 177 75 -12
f 232 230 272 273 41 -86
f 227 228 274 273 -34 -91
f 220 220 283 280 76 -43
f 243 247 254 256 -9 87
f 204 204 297 296 -37 -51
f 233 235 264 265 25 60
f 211 211 287 289 96 -4
f 201 201 302 304 1 24
f 214 215 290 283 31 -78
f 233 235 268 270 -86 -24
f 210 210 295 294 -95 0
f 224 224 276 274 -25 73
f 250 248 248 252 -89 -62
f 341 344 356 356 -60 46
f 338 338 364 367 -36 -99
f 326 326 373 373 -93 -79
f 328 327 378 371 47 2
f 330 331 368 367 -8 57
f 351 348 353 351 44 38
f 334 333 368 369 -34 -74
f 310 310 392 395 71 -41
f 322 323 375 379 14 -39
f 332 333 368 369 93 -52
f 321 322 376 378 -70 -32
f 323 323 375 379 56 59
f 339 338 359 363 -35 -18
G
p 2 4 1 6
p 20 58 27 66
p 100 285 182 177
q
OUTPUT
(17, 17, 88, 85) non inseribile
(2, 2, 101, 95) non inseribile
(17, 17, 86, 83) non inseribile
(106, 106, 196, 198) non inseribile
(122, 122, 183, 177) non inseribile
(201, 201, 302, 304) non inseribile
(214, 215, 290, 283) non inseribile
(328, 327, 378, 371) non inseribile
(334, 333, 368, 369) non inseribile
(332, 333, 368, 369) non inseribile
(321, 322, 376, 378) non inseribile
11
1 1
-3 5
1 1
--- FINE ---
Vado a fare la relazione.
Ciao |
Moffone |
Originally posted by marco.pozzi
Posto un altro test. Non ho verificato NULLA, quindi occhio!
..........
Vado a fare la relazione.
Ciao
Mi da un "non inseribile" in più
(17 17 88 85) non inseribile
(2 2 101 95) non inseribile
(17 17 86 83) non inseribile
(106 106 196 198) non inseribile
(122 122 183 177) non inseribile
(201 201 302 304) non inseribile
(214 215 290 283) non inseribile
(250 248 248 252) non inseribile
(328 327 378 371) non inseribile
(334 333 368 369) non inseribile
(332 333 368 369) non inseribile
(321 322 376 378) non inseribile
11
1 1
-3 5
1 1
Serve almeno un, anzi servono almeno altri 2 output |
marco.pozzi |
E' l'input che è sbagliato infatti nelle righe di input di tipo
f a b c d
deve risultare a <= c e b <= d.
Nel mio codice ho gestito anche questo caso "errato" invertendo a con c (oppure b con d).
Direi quindi di non preoccuparsi!
Fuori gli altri output!
Marco |
Bloody |
a me quel nodo viene inseribile, ma come mai in p ci sono 4 numeri invece che due?
Vuol dire che dobbiamo testare
p a b c d
nei punti ab e poi cd?
ps: ripeto la domanda mia di un paio di post sopra |
loreste |
Scusate, ma il prof. è stato chiaro,:
1)NON fare controlli sull'input, si da per scontato che sia corretto
2)La funzione punto riceve SOLO due parametri, perchè vi complicate la vita con 4 parametri? |
Moffone |
non mi ero nemmeno accorto che ci fossero 4 parametri per p!
Che caprone che sono!
Bloody per p servono 2 punti a e b, stop!
marco evidentemente ha voluto fare lo sborone... :) |
marco.pozzi |
Non si tratta di fare lo sborone, ma piuttosto di un mio errore nel programma che genera un file di input casuale.
Dice bene loreste, non complichiamoci la vita.
Per il resto il file di input dovrebbe essere corretto. |
Moffone |
Originally posted by Bloody
Faccio un'altra domanda: ma quando si polarizza il risultato della differenza tra il segnale e la somma delle distorsioni e i segni sono diversi, non bisogna moltiplicare entrambe le cifre per -1 come quando si polarizzano le singole distorsioni di ogni filtro??
Help!!
Se y < 0 devi moltiplicare x e y per -1. |
tetrinet |
Originally posted by Moffone
Mi da un "non inseribile" in più
(17 17 88 85) non inseribile
(2 2 101 95) non inseribile
(17 17 86 83) non inseribile
(106 106 196 198) non inseribile
(122 122 183 177) non inseribile
(201 201 302 304) non inseribile
(214 215 290 283) non inseribile
(250 248 248 252) non inseribile
(328 327 378 371) non inseribile
(334 333 368 369) non inseribile
(332 333 368 369) non inseribile
(321 322 376 378) non inseribile
11
1 1
-3 5
1 1
Ma ti da' non inseribile perche' hai controllato che c sia > a o cosa?
Originally posted by Moffone
Serve almeno un, anzi servono almeno altri 2 output
In che senso servono altri due output? |
marco.pozzi |
A me risulta inseribile (a patto di scambiare a con c).
Penso che Moffone abbia chiesto due ulteriori output per fare ulteriori prove, o sbaglio?
Ciao |
andrea |
Ciao. Scusate se mi intrometto con una domanda stupida... io l'esame lo farò più avanti ma sto cercando di valutare questo progetto. Non capisco il testo quando parla di polarità. Si dice che una coppia di interi determina una sola polarità, eventualmente moltiplicando per -1. Poi fa gli esempi con le coppie (24,-12) e (-9,-6). In questi casi ottiene (-2,1) e (3,2) perchè avrebbe y<1 e quindi moltiplica per -1? Ed era necessario specificare che ogni coppia di interi fornisce una e una sola polarità? Non è scontato?
Se mi rispondete vi sono grato... Andrea. |
tetrinet |
Originally posted by marco.pozzi
A me risulta inseribile (a patto di scambiare a con c).
A me risulta inseribile anche senza scambiare a con c, perche' non ho fatto controlli sull'input.
Vorrei capire se a voi risulta non inseribile perche' a monte fate controlli sull'input o perche' non rispetta i requisiti di inseribilita'. |
Moffone |
X tetrinet:
ho controllato a < c!
Servono altri 2 output per vedere se vien giusto l'utput di marco! visto che lui non lo ha controllato!
X marco.pozzi
non sbagli! |
tetrinet |
Originally posted by Moffone
X tetrinet:
ho controllato a < c!
Ah ok, ma allora secondo voi va controllato almeno che a >= 0 c>a etc etc?? Io non ho fatto *nessun* controllo sull'input.
Originally posted by Moffone
Servono altri 2 output per vedere se vien giusto l'utput di marco! visto che lui non lo ha controllato!
Confermo output. |
Skanky |
Originally posted by andrea
Ciao. Scusate se mi intrometto con una domanda stupida... io l'esame lo farò più avanti ma sto cercando di valutare questo progetto. Non capisco il testo quando parla di polarità. Si dice che una coppia di interi determina una sola polarità, eventualmente moltiplicando per -1. Poi fa gli esempi con le coppie (24,-12) e (-9,-6). In questi casi ottiene (-2,1) e (3,2) perchè avrebbe y<1 e quindi moltiplica per -1? Ed era necessario specificare che ogni coppia di interi fornisce una e una sola polarità? Non è scontato?
moltiplica per -1 se y <0 tutto qui, per il resto se pensi sia scontato meglio vuol dire che lo hai capito in fretta ;-)
ciao |
andrea |
no, no, volevo precisare... non è che mi sembra scontato il progetto, tutt'altro, mi sembra scontato che due interi diano una e una sola polarità. Ma siccome quando una cosa mi sembra scontata penso sempre che ci sia sotto qualcosa, chiedevo delucidazioni. |
Bloody |
a me risulta inseribile perchè faccio una scansione della lista e il nodo risulta compatibile con tutti.
ps.... ma abbiamo tempo anche domani??? o per entro si intende che venerdi è escluso? |
Skanky |
Originally posted by Bloody
a me risulta inseribile perchè faccio una scansione della lista e il nodo risulta compatibile con tutti.
ps.... ma abbiamo tempo anche domani??? o per entro si intende che venerdi è escluso?
Venerdi compreso |
tom80 |
Per Bloody.
Ciao Bloody, anche io ho pensato alle liste di adiacenza, ma ho un piccolo problema.Come hai fatto a afre l-inserimento.Per la funzione grado e grado piano hai usato la visita in profondita.
Grazie mile.
Ciao ciao Tom80 |
Gusher |
anche a me risulta che (250 248 248 252) è INSERIBILE. |
tetrinet |
Vediamo di chiarire se il "non controllare la correttezza dell'input" significa solamente assumere che i comandi siano corretti (quindi f ha 6 valori, p 2 valori etc) oppure anche che i vari range di valori siano corretti (a >=0, c>a etc etc.)
Qualcuno ha mandato mail a Fiorentini su questo punto? |
Bloody |
Dal pdf del testo:
Usiamo la notazione R(a; b; c; d) per denotare il rettangolo il cui vertice in basso a sinistra ha coordinate
(a; b) e il vertice in alto a destra ha coordinate (c; d), dove
0 <=a < c e 0 <=b < d.
Marco, a parte il nodo che risulta a me inseribile, il resto dell'output è uguale al tuo!!! |
tetrinet |
Che voi sappiate Fiorentini pubblica sul sito l'elenco dei progetti ricevuti? |
mitnik |
Non so penso che risponda tramite mail. Io ho mandato il progetto e la relazione ieri sera e non ho ancora avuto risposta. Tu quando hai mandato il tutto?
Penso che comunque per lunedì risponda a tutti |
|
|
|
|