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).