listati da Prolog2
listati da copiare e incollare su notes e salvare come file.PRO
richiamabili in ambiente Prolog

esci listaprolog.htm

uso di menù integrato a programma e archivio richiamato con include

 

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

nowarnings
include "ana7.pro"
domains
H = char
predicates
finestra
scelta(integer)
azione1(integer)
azione2(integer)
azione3(integer)
azione4(integer)
azione6(integer)
azione
goal finestra,azione.
clauses
finestra:-clearwindow,
makewindow(1,7,1,"",1,1,20,45),
makewindow(2,7,1,"",1,46,20,30).
azione:-
shiftwindow(2),
write("0..questo menu "),nl,
write("1..archivio "),nl,
write("2..figli maschi "),nl,
write("3..figli femmine "),nl,
write("4..figli minori 25 anni "),nl,
write("6..fine "),nl,
readint(Q),nl,scelta(Q).
scelta(0):-azione.
scelta(1):-azione1(7).
scelta(2):-azione2(7).
scelta(3):-azione3(7).
scelta(4):-azione4(7).
scelta(6):-azione6(0).

/* stampa archivio completo */
azione1(W):-shiftwindow(1),
W<8,!,
dati(N,F,S,E),
write(N,"\t",F,"\t",S,"\t",E),nl,
W1=W+1,
azione1(W1).

/* stampa padri con figli maschi */
azione2(W):-shiftwindow(1),
W<8,!,
dati(N,F,S,E),
S=maschio,
write(N,"\t",F,"\t",S),nl,
W1=W+1,
azione2(W1).
azione2(7).

/* stampa padri con figli femmine */
azione3(W):-shiftwindow(1),
W<8,!,
dati(N,F,S,E),
S=femmina,
write(N,"\t",F,"\t",S),nl,
W1=W+1,
azione3(W1).

/* stampa figli e figlie minori 25 anni */
azione4(W):-shiftwindow(1),
W<8,!,
dati(N,F,S,E),
E<=25,
write(N,"\t",F,"\t",S,"\t",E),nl,
W1=W+1,
azione4(W1).

/* fine operazione */
azione6(W):-shiftwindow(1),
write("fine "),beep,
clearwindow,
write("premi enter "),
readchar(H).

 

/* ana7.pro*/

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