Autore |
Discussione |
|
hunter32
Utente giovane
|
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
|
|
pier_IP
Utente giovane
Regione: Puglia
Prov.: Bari
Città: Triggiano
|
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) |
Aiuto Ubuntu per neofiti http://piersprogramming.blogspot.com |
|
|
hunter32
Utente giovane
|
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! |
|
|
Danyel
Utente giovane
|
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!
|
Ciao! |
Modificato da - Danyel in data 30/01/2011 16:49:32 |
|
|
bircastri
Utente medio
Regione: Puglia
Prov.: Foggia
Città: manfredonia
|
Inserito il - 31/01/2011 : 10:13:45
|
mi associo alla richiesta di DANYEL |
Michael |
|
|
Spidey
Utente medio
Regione: Puglia
Prov.: Bari
|
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. |
La coscienza dell'inettitudine è più proficua della presunzione di perfezione |
Modificato da - Spidey in data 22/03/2011 22:57:43 |
|
|
|
Discussione |
|
|
|