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