liste5
gestione liste e stringhe
/* orio1a.pro */
domains cibo =symbol predicates frutta(cibo) formaggio(cibo) carne(cibo) azione azione1 goal azione,azione1. clauses azione:- makewindow(1,5,1,"",1,1,20,78), carne(X), write(X),nl,fail;nl, frutta(Y), write(Y),nl,fail;nl,nl. azione1:- carne(vitello), write("vitello:si carne:"),nl,nl. carne(pera):- write("pera:non carne:"),nl,fail; carne(pollo), write("pollo:si carne: "),nl,nl,fail.
carne(vitello). carne(pollo). formaggio(grana). frutta(mela). frutta(pera).
/* orio3a */
nowarnings domains studente,materia = symbol predicates studia(studente,materia) azione goal azione. clauses azione:- makewindow(1,6,1,"",1,1,20,78), write("stampa nomi studenti e materia"),nl, studia(X,Y), write(X,"\t",Y),nl,fail; write("cerca chi studia inglese"),nl, studia(X,inglese), write(X),nl,fail; write("cerca materie studiate da bruno"),nl, studia(bruno,Y), write(Y),nl,fail.
studia(alessio,storia). studia(bruno,matematica). studia(bruno,italiano). studia(luca,inglese). studia(luca,italiano). studia(alessio,scienze).
/* pausa.pro */ /* attivazione predicato per attesa tasto */
domains A,B = integer predicates azione tasto goal azione. clauses azione:-makewindow(1,4,1,"",1,1,20,78), readint(A), write(A),nl, tasto, readint(B), write(B),nl, tasto.
tasto:- makewindow(3,3,2,"",20,60,3,15), write("premi enter"), readchar(_), removewindow, gotowindow(1).
/* ritardo.pro */ /* attivazione predicato per ritardo fissato */ nowarnings domains A,B = integer R,R1=real predicates azione tasto ritardo(R) goal azione. clauses azione:-makewindow(1,4,1,"",1,1,20,78), readint(A), write(A),nl, write("attendere..."),nl, ritardo(1), /* assegna inizio misura ritardo*/ write("scrivi numero intero "),nl, readint(B), write(B),nl, write("attendere..."),nl, ritardo(50000), tasto.
ritardo(60000):-!. /* limite pausa fissato */ ritardo(R):- R1=R+1, ritardo(R1).
tasto:- makewindow(3,3,2,"",20,60,3,15), write("premi enter"), readchar(_), removewindow, gotowindow(1).