danax6

archivio con include

 

/* danax6.pro */
/* nota numero assegnato W dipende da record */
/* presenti in database  */

nowarnings
include "A:/ana/ana7.dba"
domains
H = char
predicates
 finestra
 scelta(integer)
 azione0(integer)
 azione1(integer)
 azione2(integer)
 azione3(integer)
 azione4(integer)
 goal finestra.
clauses
 finestra:-clearwindow,
 makewindow(1,7,2,"",1,1,20,40),
 makewindow(2,7,1,"",1,42,20,35),
 write("INIZIARE sempre premendo 0 "),nl,
 write("---------------------------"),nl,
 write("premi numero scelto e poi ENTER "),nl,
 write("dopo 3 ricerche,premi ancora 0 "),nl,
 write("e poi numero opzione scelta "),nl,
 write("-----------------------------"),nl,
 write("0..inizia sempre 0,poi altri n."),nl,
 write("-----------------------------"),nl,
 write("1..archivio "),nl,
 write("2..figli maschi "),nl,
 write("3..figli femmine "),nl,
 write("4..fine "),nl,
 readint(Q),nl,scelta(Q).
 scelta(0):-azione0(8).
 scelta(1):-shiftwindow(1),
 write("archivio"),nl,azione1(8).
 scelta(2):-shiftwindow(1),
 write("maschi"),nl,azione2(8).
 scelta(3):-shiftwindow(1),
 write("femmine"),nl,azione3(8).
 scelta(4):-shiftwindow(1),
 write("fine "),nl,azione4(8).
 
 /* inizia ricerca */
 azione0(W):-
 W<9,!,
  dati(N,F,S,E),
  readchar(H),
  finestra.
 
 /* stampa archivio */
 azione1(W):-
 W<9,!,
 dati(N,F,S,E), 
 write(N,"\t",F,"\t",S,"\t",E),nl,
 W1=W+1,
 azione1(W1).
 azione1(8).
  
 /* stampa padri con figli maschi */ 
 azione2(W):- 
 W<9,!,
 dati(N,F,S,E),
 S=maschio,
 E<=25,
 write(N,"\t",F,"\t",S,"\t",E),nl,
 W1=W+1,
 azione2(W1).
 azione2(8).
 
 /* stampa padri con figli femmine */      
 azione3(W):-
 W<9,!,
 dati(N,F,S,E),
 S=femmina,
 write(N,"\t",F,"\t",S,"\t",E),nl,
 W1=W+1,
 azione3(W1).
 azione3(8).
 
 /* fine operazione */
 azione4(W):-
 write("fine "),beep,
 clearwindow,
 write("premi enter "),
 readchar(H).
 

       
/* ana7.dba */
domains
 nome = symbol
 eta =integer
predicates
 dati(nome,nome,nome,eta)
clauses
 dati(verdi,luigi,maschio,23).
 dati(rossi,carlo,maschio,34).
 dati(bassi,anna,femmina,30).
 dati(grassi,sergio,maschio,12).
 dati(basso,elisa,femmina,15).
 dati(pascoli,mario,maschio,30).
 dati(zanella,lisa,femmina,21).
 dati(grossi,aldo,maschio,23).