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
ragazzi un chiarimento sul prolog.
voglio fare un prog che mi tolga le occorrenze di un termine in una lista e mi restituisce sempre una llista senza tale termine.
io avrei ragionato cosi:
cancella([],A,[]).
cancella([A|T],A,T):-cancella(T,A,T).
cancella([H|T],A,[H|Y]):-cancella(T,A,Y).
qualcuno potrebbe spiegarmi perchè non funziona grazie.
voglio fare un prog che mi tolga le occorrenze di un termine in una lista e mi restituisce sempre una llista senza tale termine.
io avrei ragionato cosi:
cancella([],A,[]).
cancella([A|T],A,T):-cancella(T,A,T).
cancella([H|T],A,[H|Y]):-cancella(T,A,Y).
qualcuno potrebbe spiegarmi perchè non funziona grazie.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 221
ragazzi un chiarimento sul prolog.
voglio fare un prog che mi tolga le occorrenze di un termine in una lista e mi restituisce sempre una llista senza tale termine.
io avrei ragionato cosi:
cancella([],A,[]).
cancella([A|T],A,T):-cancella(T,A,T).
cancella([H|T],A,[H|Y]):-cancella(T,A,Y).
qualcuno potrebbe spiegarmi perchè non funziona grazie.
A ME GIRA..... L'unica cosa è che puoi cancellare un solo elemento da quella lista... la cosa carina sarebbe cancellare una sottolista dalla listona :wink:
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 222
Accepted Answer
Pending Moderation
scusa gira se togli il termine c'è una solavolta nella lista di partenza
ovvero [1,2,3] A=2 allora ok
mentre se ho [2,1,2,3] a =2 non funziona
restituisce [1,2,3].
la mia domanda perchè?
aiuto :lol:
ovvero [1,2,3] A=2 allora ok
mentre se ho [2,1,2,3] a =2 non funziona
restituisce [1,2,3].
la mia domanda perchè?
aiuto :lol:
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 223
A=2 allora ok
mentre se ho [2,1,2,3] a =2 non funziona
restituisce [1,2,3].
la mia domanda perchè?
aiuto :lol:
Tu gli fai scorrere ricorsivamente tutta la lista di partenza.... è normale che se trova due elementi uguali a quello che vuoi togliere li toglie entrambi....
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 224
Accepted Answer
Pending Moderation
A=2 allora ok
mentre se ho [2,1,2,3] a =2 non funziona
restituisce [1,2,3].
la mia domanda perchè?
aiuto :lol:
Al volo, così dovrebbe andare:
cancella([],A,[]).
cancella([H|T1],A,[H|T2]):- (\+ (H is A)), !, cancella(T1, A, T2).
cancella([_|T1],A,List):- cancella(T1,A, List).
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 225
A=2 allora ok
mentre se ho [2,1,2,3] a =2 non funziona
restituisce [1,2,3].
la mia domanda perchè?
aiuto :lol:
Al volo, così dovrebbe andare:
cancella([],A,[]).
cancella([H|T1],A,[H|T2]):- (\+ (H is A)), !, cancella(T1, A, T2).
cancella([_|T1],A,List):- cancella(T1,A, List).
ORA PROVO..... E TI DICO.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 226
A=2 allora ok
mentre se ho [2,1,2,3] a =2 non funziona
restituisce [1,2,3].
la mia domanda perchè?
aiuto :lol:
Al volo, così dovrebbe andare:
cancella([],A,[]).
cancella([H|T1],A,[H|T2]):- (\+ (H is A)), !, cancella(T1, A, T2).
cancella([_|T1],A,List):- cancella(T1,A, List).
ORA PROVO..... E TI DICO.
SI..... MO NE LEVA UNO
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 227
Accepted Answer
Pending Moderation
Io l'ho fatto cosi. Mi sa che è un po impicciato, ma sembra che funziona!! :lol:
cancella([T,C],R,E) :- not(T==E), C==E, append([T],[],R).
cancella([T],R,E) :- not(T==E), append([T],[],R).
cancella([T|C],R,E) :- not(T==E), cancella(C,R1,E), append([T],R1,R).
cancella([T|C],R,E) :- T==E, cancella(C,R,E).
?- cancella([2,1,2,5,4,2],Z,2).
Z = [1, 5, 4] ;
cancella([T,C],R,E) :- not(T==E), C==E, append([T],[],R).
cancella([T],R,E) :- not(T==E), append([T],[],R).
cancella([T|C],R,E) :- not(T==E), cancella(C,R1,E), append([T],R1,R).
cancella([T|C],R,E) :- T==E, cancella(C,R,E).
?- cancella([2,1,2,5,4,2],Z,2).
Z = [1, 5, 4] ;
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 228
Cosi mi sa che funziona:
del(X,[],[]).
del(X,[X|L],M) :- del(X,L,M), !.
del(X,[Y|L],[Y|M]) :- del(X,L,M).
del(X,[],[]).
del(X,[X|L],M) :- del(X,L,M), !.
del(X,[Y|L],[Y|M]) :- del(X,L,M).
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 229
Ah, dimenticavo. Il cut del secondo predicato mi permette di non avere una condizione al terzo predicato (altrimenti cercando nuove soluzioni potrebbe succedere macello).
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 230
A=2 allora ok
mentre se ho [2,1,2,3] a =2 non funziona
restituisce [1,2,3].
la mia domanda perchè?
aiuto :lol:
Al volo, così dovrebbe andare:
cancella([],A,[]).
cancella([H|T1],A,[H|T2]):- (\+ (H is A)), !, cancella(T1, A, T2).
cancella([_|T1],A,List):- cancella(T1,A, List).
ORA PROVO..... E TI DICO.
ANZI NO... non funge.... cioè leva tutti gli elementi....
SI..... MO NE LEVA UNO
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 231
Ah, dimenticavo. Il cut del secondo predicato mi permette di non avere una condizione al terzo predicato (altrimenti cercando nuove soluzioni potrebbe succedere macello).
non so perchè .... ma nessuno di queste soluzioni è la risposta alla domanda iniziale.... io ho fatto come te.... ma non mi gira...
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 232
Ah, dimenticavo. Il cut del secondo predicato mi permette di non avere una condizione al terzo predicato (altrimenti cercando nuove soluzioni potrebbe succedere macello).
non so perchè .... ma nessuno di queste soluzioni è la risposta alla domanda iniziale.... io ho fatto come te.... ma non mi gira...
ANZI MI GIRA... ma non cancella "solo un elemento"
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 233
Accepted Answer
Pending Moderation
Ah, dimenticavo. Il cut del secondo predicato mi permette di non avere una condizione al terzo predicato (altrimenti cercando nuove soluzioni potrebbe succedere macello).
non so perchè .... ma nessuno di queste soluzioni è la risposta alla domanda iniziale.... io ho fatto come te.... ma non mi gira...
ANZI MI GIRA... ma non cancella "solo un elemento"
La mia versione cancella "solo un elemento". E' un po poco elegante, ma l'ho fatta al volo. E' primo maggio anche per i miei criceti. :lol:
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 234
Accepted Answer
Pending Moderation
Secondo me questa e' la soluzione migliore:
eliminazione(A, B, C):- findall(Y, (member(Y, A), not(Y=B)), C).
eliminazione(A, B, C):- findall(Y, (member(Y, A), not(Y=B)), C).
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 235
Se può essere utile posto le mie soluzioni per i vari predicati "cancella":
il primo cancella tutte le occorrenze, il secondo solamente la PRIMA, il terzo restituisce più soluzioni in cui per ogni soluzione si ha la rimozione dell'elemento una volta (in posizioni diverse ovviamente) - esempio quest'ultimo copiato da "The Art of Prolog" dove viene chiamato 'select'.
[code type="markup"]remove_first(_,[],[]).
remove_first(X,[X|Ys],Ys).
remove_first(X,[Y|Ys],[Y|Zs]) :- \+ X=Y, remove_first(X,Ys,Zs).[/code][code type="markup"]remove_all(_,[],[]).
remove_all(X,[X|Ys],Zs) :- remove_all(X,Ys,Zs).
remove_all(X,[Y|Ys],[Y|Zs]) :- \+ X=Y, remove_all(X,Ys,Zs).[/code][code type="markup"]select(X,[X|Xs],Xs).
select(X,[Y|Ys],[Y|Zs]) :- select(X,Ys,Zs).[/code]
il primo cancella tutte le occorrenze, il secondo solamente la PRIMA, il terzo restituisce più soluzioni in cui per ogni soluzione si ha la rimozione dell'elemento una volta (in posizioni diverse ovviamente) - esempio quest'ultimo copiato da "The Art of Prolog" dove viene chiamato 'select'.
[code type="markup"]remove_first(_,[],[]).
remove_first(X,[X|Ys],Ys).
remove_first(X,[Y|Ys],[Y|Zs]) :- \+ X=Y, remove_first(X,Ys,Zs).[/code][code type="markup"]remove_all(_,[],[]).
remove_all(X,[X|Ys],Zs) :- remove_all(X,Ys,Zs).
remove_all(X,[Y|Ys],[Y|Zs]) :- \+ X=Y, remove_all(X,Ys,Zs).[/code][code type="markup"]select(X,[X|Xs],Xs).
select(X,[Y|Ys],[Y|Zs]) :- select(X,Ys,Zs).[/code]
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 236
Accepted Answer
Pending Moderation
Secondo me questa e' la soluzione migliore:
eliminazione(A, B, C):- findall(Y, (member(Y, A), not(Y=B)), C).
Ottima soluzione!!!!!
Grande!!!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 237
L'esame di oggi com'era?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 238
Accepted Answer
Pending Moderation
- 10 domande crocette
- esercizio (conseguenza logica)
- esercizio prolog
- 1 owl (vedere inconsistenze e classi (esplicite o inferibili))
- 1 owl con Description Logice e Query Prolog.
Ok, questa è la sintesi, poi verranno i dettagli....
nel frattempo, potete dirmi se al 1 esercizio owl avete
trovato inconsistenze? se sì quali? io ne ho trovata una,
ma mo vado di fretta....
scappo....
ciao ciao
- esercizio (conseguenza logica)
- esercizio prolog
- 1 owl (vedere inconsistenze e classi (esplicite o inferibili))
- 1 owl con Description Logice e Query Prolog.
Ok, questa è la sintesi, poi verranno i dettagli....
nel frattempo, potete dirmi se al 1 esercizio owl avete
trovato inconsistenze? se sì quali? io ne ho trovata una,
ma mo vado di fretta....
scappo....
ciao ciao
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 239
Accepted Answer
Pending Moderation
- 10 domande crocette
- esercizio (conseguenza logica)
- esercizio prolog
- 1 owl (vedere inconsistenze e classi (esplicite o inferibili))
- 1 owl con Description Logice e Query Prolog.
Ok, questa è la sintesi, poi verranno i dettagli....
nel frattempo, potete dirmi se al 1 esercizio owl avete
trovato inconsistenze? se sì quali? io ne ho trovata una,
ma mo vado di fretta....
scappo....
ciao ciao
no non ce ne erano di inconsistenze. giuro.
ma l'esercizio prolog come si faceva?
io ho fatto la versione umana quella che accettava tutti e 2 gli esempi,
mi sono accorto troppo tardi che richiedeva un altra cosa.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 240
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 »