V I S U A L I Z Z A D I S C U S S I O N E |
hunter32 |
Inserito il - 07/06/2010 : 12:30:47 Nelle slide "graph" si lascia definire le specifiche algebriche allo studente. Se qualcuno le ha definite o sa come definirle potrebbe correggere/completare quanto scritto più in basso?
declare G1, G2:graph; n1, n2, n3:node
| creagrafo() | insnodo(n1, G1)
---------------------+-------------+-----------------
grafovuoto(G2) | true | false
insarco(n2, n3, G2) | ERROR | ?
cancnodo(n2, G2) | ERROR | if n1=n2 then G1 else cancnodo(n2, G1)
cancarco(n2, n3, G2) | ERROR | ?
adiacenti(n2, G2) | ERROR | l
|
5 U L T I M E R I S P O S T E (in alto le più recenti) |
Spidey |
Inserito il - 22/03/2011 : 22:54:58 Ciao ragazzi, ecco la mia versione delle specifiche: Link al file PDF da scaricare --> specifiche grafo (61,45 KB)
Ciao ciao. |
bircastri |
Inserito il - 31/01/2011 : 10:13:45 mi associo alla richiesta di DANYEL |
Danyel |
Inserito il - 30/01/2011 : 16:47:31 Citazione: Messaggio inserito da hunter32
In effetti il problema principale era proprio quello: il numero di costruttori era errato :P
Riscrivo la tabella in questo modo:
declare G1, G2:graph; n1, n2, n3, n4:node
osservazioni | costruttori di G2
---------------------+-------------+-------------------------------------+---------------------
| creagrafo() | insnodo(n1, G1) | insarco(n1, n4, G1)
---------------------+-------------+-------------------------------------+---------------------
grafovuoto(G2) | true | false | false
cancnodo(n2, G2) | ERROR | if n1=n2 then G1 | ERROR
| | else insnodo(n1, cancnodo(n2, G1)) |
cancarco(n2, n3, G2) | ERROR | ERROR | if n1=n2 AND n3=n4 then G1
| | | else insarco(n1, n4, cancarco(n2, n3, G1))
adiacenti(n2, G2) | ERROR | adiacenti(n2, G1) | adiacenti(n2, G1)
La soluzione proposta potrebbe contenere errori, quindi, non prendetela assolutamente come valida!
Io modificherei solo alcune espressioni; per comodità riscrivo tutta la tabella:
declare G1, G2:graph; n1, n2, n3, n4:node, L:list
osservazioni | costruttori di G2
---------------------+-------------+--------------------------------------+------------------------------------------------
| creagrafo() | insnodo(n1, G1) | insarco(n1, n4, G1)
---------------------+-------------+--------------------------------------+------------------------------------------------
grafovuoto(G2) | true | false | false
---------------------+-------------+--------------------------------------+------------------------------------------------
cancnodo(n2, G2) | ERROR | if n1=n2 then G1 | if n1=n2 then ERROR
| | else insnodo(n1, cancnodo(n2, G1)) | else if n4=n2 then ERROR
| | | else insarco(n1,n4,cancnodo(n2,G1))
---------------------+-------------+--------------------------------------+------------------------------------------------
cancarco(n2, n3, G2) | ERROR | if n1=n2 then ERROR | if n1=n2 AND n4=n3 then G1
| | else if n1=n3 then ERROR | else if n1=n3 AND n4=n2 then G1
| | else insnodo(n1,cancarco(n2,n3,G1))| else insarco(n1, n4, cancarco(n2, n3, G1))
---------------------+-------------+--------------------------------------+------------------------------------------------
adiacenti(n2, G2) | ERROR | if n1=n2 then ERROR | L
| | else adiacenti(n2, G1) |
Fatemi sapere cosa ne pensate, magari se ritete opportuna qualche correzione...
PS: Qualcuno può postare le specifiche algebriche di ALBERO, già che ci siamo??? Grazie!
|
hunter32 |
Inserito il - 30/01/2011 : 11:34:47 In effetti il problema principale era proprio quello: il numero di costruttori era errato :P
Riscrivo la tabella in questo modo:
declare G1, G2:graph; n1, n2, n3, n4:node
osservazioni | costruttori di G2
---------------------+-------------+-------------------------------------+---------------------
| creagrafo() | insnodo(n1, G1) | insarco(n1, n4, G1)
---------------------+-------------+-------------------------------------+---------------------
grafovuoto(G2) | true | false | false
cancnodo(n2, G2) | ERROR | if n1=n2 then G1 | ERROR
| | else insnodo(n1, cancnodo(n2, G1)) |
cancarco(n2, n3, G2) | ERROR | ERROR | if n1=n2 AND n3=n4 then G1
| | | else insarco(n1, n4, cancarco(n2, n3, G1))
adiacenti(n2, G2) | ERROR | adiacenti(n2, G1) | adiacenti(n2, G1)
La soluzione proposta potrebbe contenere errori, quindi, non prendetela assolutamente come valida! |
pier_IP |
Inserito il - 29/01/2011 : 18:56:58 Mi stavo per accodare alla richiesta di specifiche algebriche di grafo, ma poi mi sono accorto che una soluzione gia' c'e'. Scarica la traccia (e soluzione) del 14/01/2010 (e' l'unica a cui il prof ha dato la soluzione). Si parla del layout che praticamente e' la stessa cosa del grafo solo che abbiamo 2 tipi di archi.
Citazione:
I costruttori sono quattro: creaLayout(),addBlock(layout, block), addAbove(layout, block, block), addLeft(layout, block, block).
Che nel grafo sarebbero creaGrafo(), insNodo(n, G) e insArco(n, n', G) |
|
|