danax5
archivio con include
/* danax5.pro */ /* nota numero assegnato W dipende da record */ /* presenti in database */
nowarnings include "A:/ana/ana4.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,1,"",1,1,20,60), write("INIZIARE sempre premendo 0 "),nl, write("---------------------------"),nl, write("premi numero scelto e poi ENTER "),nl, write("dopo tre ricerche,premere ancora 0 "),nl, write("e poi i numeri per opzioni scelte "),nl, write("----------------------------------"),nl, write("0..inizia con 0 sempre ,poi altri n."),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):-write("archivio"),nl,azione1(8). scelta(2):-write("maschi"),nl,azione2(8). scelta(3):-write("femmine"),nl,azione3(8). scelta(4):-write("fine "),nl,azione4(8).
/* inizia ricerca */ azione0(W):- W<9,!, dati(N,F,S), readchar(H), finestra.
/* stampa archivio */ azione1(W):- W<9,!, dati(N,F,S), write(N,"\t",F,"\t",S),nl, W1=W+1, azione1(W1). azione1(8).
/* stampa padri con figli maschi */ azione2(W):- W<9,!, dati(N,F,S), S=maschio, write(N,"\t",F,"\t",S),nl, W1=W+1, azione2(W1). azione2(8).
/* stampa padri con figli femmine */ azione3(W):- W<9,!, dati(N,F,S), S=femmina, write(N,"\t",F,"\t",S),nl, W1=W+1, azione3(W1). azione3(8).
/* fine operazione */ azione4(W):- write("fine "),beep, clearwindow, write("premi enter "), readchar(H).
/* ana4.dba */
domains nome = symbol predicates dati(nome,nome,nome) clauses dati(verdi,luigi,maschio). dati(rossi,carlo,maschio). dati(bassi,anna,femmina). dati(grassi,sergio,maschio). dati(basso,elisa,femmina).