in virtù degli orari usciti apro il 3d del corso.
Benvengano consigli da chi ha già sostenuto l'esame.
- VanillaSky
- Ingegneria Informatica - Triennale
- Giovedì, 22 Febbraio 2007
- Subscribe via email
Comment
There are no comments made yet.
Accepted Answer
Pending Moderation
Sinceramente posso parlare poco perchè la parte sul prologo non l'ho praticamente fatta...però il secondo esercizio in OWL era un pò lunghetto!! :shock:
Poi non capivo cosa voleva...l'ho chiesto al prof...ma lui mi ha guardato come se era banale... :roll:
Poi non capivo cosa voleva...l'ho chiesto al prof...ma lui mi ha guardato come se era banale... :roll:
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 1
Accepted Answer
Pending Moderation
Ciao! Sono di nuovo qui...perchè ha vinto il lupo... :cry:
Ciao Ale ti sei spiegato quei voti assurdi? :shock: due 30&lode, un 18, il resto NC, ma che diavolo di compito era?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 2
Accepted Answer
Pending Moderation
Ciao! Sono di nuovo qui...perchè ha vinto il lupo... :cry:
Litigo sempre con Prolog, qualche anima pia mi può aiutare?
Questo codice restituisce vero se F è il fattoriale di N.
Quello che non capisco è quando viene calcolato F1...
ho fatto eseguire il codice con il comando "trace" per vedere i vari passaggi e F1 viene valorizzato da un certo punto in poi...solo che non capisco quale!!!
Litigo sempre con Prolog, qualche anima pia mi può aiutare?
fat(0,1).
fat(1,1).
fat(N,F):-
N>1,
N1 is N-1,
fat(N1,F1),
F is N*F1.
Questo codice restituisce vero se F è il fattoriale di N.
Quello che non capisco è quando viene calcolato F1...
ho fatto eseguire il codice con il comando "trace" per vedere i vari passaggi e F1 viene valorizzato da un certo punto in poi...solo che non capisco quale!!!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 3
Accepted Answer
Pending Moderation
Prego!!!
In bocca al lupo!
In bocca al lupo!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 4
Accepted Answer
Pending Moderation
Eh, il Prolog è un po' strano, rispetto ai soliti linguaggi che siamo abituati ad usare...
Si ho notato... :twisted:
Grazie dell'aiuto!!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 5
Accepted Answer
Pending Moderation
Allora vediamo se ho capito...
permutazione(A,[C|B]):-
member(C,A,AK),permutazione(AK,B).
Con questo gli do in input le liste da controllare.
Parte la member(C,A,AK) e va in :
member(C,[C|A],A).
member(C,[J|A],[J|R]) :-
member(C,A,R).
Se la testa è = copia la coda e passa all'elemento successivo altrimenti copia tutto e parte di nuovo la ricorsione.
Giusto?
Se la testa è uguale all'elemento cercato, appunto, copia la coda della lista centrale nella lista di output [condizione di uscita]...e il "controllo" torna a permutazione/2
Se invece l'elemento di testa della lista centrale, è diverso da quello cercato...lo copia nella lista di output, continua a controllare che non ci siano elementi uguali, con la ricorsione... se ne trova uno, come sopra, altrimenti quando conclude lo scorrimento della lista centrale (senza aver trovato elementi uguali) il "controllo" ritorna a permutazione/2
Eh, il Prolog è un po' strano, rispetto ai soliti linguaggi che siamo abituati ad usare...
Fa conto che la regola di "uscita" di una chiamata ricorsiva va dichiarata per prima, come puoi vedere dall'esempio precedente...
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 6
Accepted Answer
Pending Moderation
Allora vediamo se ho capito...
Con questo gli do in input le liste da controllare.
Parte la member(C,A,AK) e va in :
Se la testa è = copia la coda e passa all'elemento successivo altrimenti copia tutto e parte di nuovo la ricorsione.
Giusto?
permutazione(A,[C|B]):-
member(C,A,AK),permutazione(AK,B).
Con questo gli do in input le liste da controllare.
Parte la member(C,A,AK) e va in :
member(C,[C|A],A).
member(C,[J|A],[J|R]) :-
member(C,A,R).
Se la testa è = copia la coda e passa all'elemento successivo altrimenti copia tutto e parte di nuovo la ricorsione.
Giusto?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 7
Accepted Answer
Pending Moderation
Grazie della spiegazione! Sei stato molto dettagliato...ora inizia ad avere un senso :lol:
Il problema principale è che non riesco a capire la logica di prolog e ragiono come se fosse un linguaggio di programmazione "normale" :cry:
Il problema principale è che non riesco a capire la logica di prolog e ragiono come se fosse un linguaggio di programmazione "normale" :cry:
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 8
Accepted Answer
Pending Moderation
Innanzitutto, se non ho capito male... lavori con i primi due parametri, l'altro è in output.
Da qui:
[code type="markup"]member(C,[C|A],A).
^ ^
[/code]
Tu stai cercando C. Se, nella lista centrale, scorrendola (e lo fai usando la notazione [H|T], dove H è la testa della lista e T la coda, anch'essa una lista), trovi un elemento uguale (dichiari la testa C per far capire a Prolog proprio questo), dici a Prolog non fare nulla con C e di copiare la coda A nella lista di output.
Poi continua:
[code type="markup"]member(K,[J|A],[J|R]) :-
^ ^
member(K,A,R).[/code]
Se invece è diverso (K != J), allora copia J nell'altra lista e ripeti anche per gli elementi mancanti, passando la coda A e la coda R (al quale, però, è già stato aggiunto J), cercando di eliminare sempre lo stesso elemento (quindi K).
Sarebbe stata anche la stessa cosa scrivendolo così, senza mettere quel K che crea confusione:
[code type="markup"]member(C, [C|A], A).
member(C, [J|A], [J|R]) :- member(C, A, R).[/code]
Oddio, non so se è proprio chiaro :?
Da qui:
[code type="markup"]member(C,[C|A],A).
^ ^
[/code]
Tu stai cercando C. Se, nella lista centrale, scorrendola (e lo fai usando la notazione [H|T], dove H è la testa della lista e T la coda, anch'essa una lista), trovi un elemento uguale (dichiari la testa C per far capire a Prolog proprio questo), dici a Prolog non fare nulla con C e di copiare la coda A nella lista di output.
Poi continua:
[code type="markup"]member(K,[J|A],[J|R]) :-
^ ^
member(K,A,R).[/code]
Se invece è diverso (K != J), allora copia J nell'altra lista e ripeti anche per gli elementi mancanti, passando la coda A e la coda R (al quale, però, è già stato aggiunto J), cercando di eliminare sempre lo stesso elemento (quindi K).
Sarebbe stata anche la stessa cosa scrivendolo così, senza mettere quel K che crea confusione:
[code type="markup"]member(C, [C|A], A).
member(C, [J|A], [J|R]) :- member(C, A, R).[/code]
Oddio, non so se è proprio chiaro :?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 9
Accepted Answer
Pending Moderation
Ciao! Mi sto preparando per l'esame di SBC del 4...ho un problema con Prolog...
Nel test di autovalutazione alla domanda 5, si deve scrivere il predicato di
ermutation(A,B).
Guardando la soluzione, il prof usa la member/3 e poi dice che fa il delete dell'elemento trovato...
Come fa?!?!? Non trovo corrispondenze di member a 3 argomenti, ma può essere che l'ha modificato il prog...se così è dove si vede che cancella l'elemento trovato??
Metto il codice
Grazie a chiunque sappia rispondere!! :lol:
Nel test di autovalutazione alla domanda 5, si deve scrivere il predicato di
Guardando la soluzione, il prof usa la member/3 e poi dice che fa il delete dell'elemento trovato...
Come fa?!?!? Non trovo corrispondenze di member a 3 argomenti, ma può essere che l'ha modificato il prog...se così è dove si vede che cancella l'elemento trovato??
Metto il codice
permutazione([],[]).
permutazione(A,[C|B]):-
member(C,A,AK),permutazione(AK,B).
member(C,[C|A],A).
member(K,[J|A],[J|R]) :-
member(K,A,R).
Grazie a chiunque sappia rispondere!! :lol:
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 10
Accepted Answer
Pending Moderation
bah..passato..male, ma passato...bene così..grazie a tutti
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 11
Accepted Answer
Pending Moderation
Non sono Stellato, ma avevo ragione![]()
Chiunque tu sia...(ma tanto lo so) ti odio!
...tu e il tuo 30&L
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 12
Fra, non te preoccupa, che ti ha promosso! :lol:
E chi sei Stellato in incognito!? :shock:
Non sono Stellato, ma avevo ragione![]()
...sei la Pazienza!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 13
Accepted Answer
Pending Moderation
Fra, non te preoccupa, che ti ha promosso! :lol:
E chi sei Stellato in incognito!? :shock:
Non sono Stellato, ma avevo ragione
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 14
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 15
Oggi mi è sembrato più abbordabile....
a voi come è andata?
Anche a me, sicuramente meglio dell'altra volta!
(anche perche' peggio non poteva andare!!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 16
Fra, non te preoccupa, che ti ha promosso! :lol:
E chi sei Stellato in incognito!? :shock:
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 17
Stellato dice che c'erano ed il motivo secondo me è questo:
duska è una cane (diverso da oggetto). ha_padrone è inversa di ha_animale (sottoproprietà di possiede, riferito solo ad oggetti), che è inversa funzionale, quind in definitiva si ha una "biezione" (ah, pettored) 1-1. Poi si sa che i Myst possono possedere solo oggetti e mario è un Myst. Dunque una inconsistenza evidente sarebbe stata: mario ha_animale duska. Noi invece avevamo duska ha_padrone mario, ma poiché ha_padrone è l'inversa di una inversa funzionale, vuol dire che è funzionale, quindi la corrispondenza 1-1 ci porta a dire che avere duska ha_padrone mario oppure mario ha_animale duska è indifferente, perché entrambe producono una inconsistenza.
duska è una cane (diverso da oggetto). ha_padrone è inversa di ha_animale (sottoproprietà di possiede, riferito solo ad oggetti), che è inversa funzionale, quind in definitiva si ha una "biezione" (ah, pettored) 1-1. Poi si sa che i Myst possono possedere solo oggetti e mario è un Myst. Dunque una inconsistenza evidente sarebbe stata: mario ha_animale duska. Noi invece avevamo duska ha_padrone mario, ma poiché ha_padrone è l'inversa di una inversa funzionale, vuol dire che è funzionale, quindi la corrispondenza 1-1 ci porta a dire che avere duska ha_padrone mario oppure mario ha_animale duska è indifferente, perché entrambe producono una inconsistenza.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 18
Accepted Answer
Pending Moderation
Anche per me Duska era inferito Oggetto perche' il proprietario era di tipo Myst, ed appunto siccome Oggetto e Animale erano disgiunti si aveva un inconsistenza.
io ho ragionato cosi':
siccome Myst se possedeva qualcosa, quella era un ogetto, e ha_animale è sottoproprieta' di possiede, poteva esserci l'inconsistenza.
pero' poi ho pensato pure che possiede non ha dominio ne range specificato, e questo mi ha messo in crisi, alla fine ho deciso che l'inconsistenza non c'e', ma non sono sicuro. Diciamo che OWL è un po' un terno al lotto.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 19
Accepted Answer
Pending Moderation
Anche per me Duska era inferito Oggetto perche' il proprietario era di tipo Myst, ed appunto siccome Oggetto e Animale erano disgiunti si aveva un inconsistenza.
boh sinceramente questa cosa non la capisco...per me non c erano
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 20
There are no replies made for this post yet.
Be one of the first to reply to this post!
Be one of the first to reply to this post!
Please login to post a reply
You will need to be logged in to be able to post a reply. Login using the form on the right or register an account if you are new here. Register Here »