predix6
archivio con include
/* predix6.pro */ /* carica programma ed esegue */ /* gestione due finestre menu e dati */ /* gestione menu con ritorno dopo azione */
nowarnings
include "A:/ana/classe1.pro"
domains W = integer Opzione =integer predicates finestra azione0(W) azione1(W) azione2(W) azione3(W) azione4(W) azione5(W) azione6(W) elabora scelta(integer) goal finestra,elabora.
clauses finestra:- clearwindow, makewindow(1,5,1,"",1,1,20,70).
elabora:- makewindow(2,3,4,"",2,5,12,40), write("si deve premere il tasto 0 "),nl, write("prima di usare i tasti opzione "),nl, write("a inizio ricerca dopo il RUN "),nl, write("--------------------------------"),nl, write("0...come prima scelta "),nl, write("1...studenti "),nl, write("2...dottori sicilia "),nl, write("3...archivio totale "),nl, write("4...studenti veneti "),nl, write("5...inferiore anni 25 "),nl, write("6...fine "),nl, write("premi numero per opzione scelta:"), readint(Opzione), clearwindow,shiftwindow(1),scelta(Opzione). scelta(0):-attribute(3), write("carica dati "),nl,azione0(1). scelta(1):-attribute(4), write("studenti"),nl, attribute(5),azione1(1). scelta(2):-attribute(2), write("dottori sicilia"),nl, attribute(6),azione2(1). scelta(3):-attribute(5), write("archivio completo "),nl, attribute(7),azione3(1). scelta(4):- write("studenti veneti "),nl,azione4(1). scelta(5):- write("inferiore anni 25 "),nl,azione5(1). scelta(6):- write("fine ricerca"),nl,azione6(1). azione0(W):- W>0,!, dati(X,Y,Z,E), write("premi enter "),nl, readchar(H),clearwindow, elabora.
azione1(W):- W>0,!, dati(X,Y,Z,E), Y=studente, write(X,"\t\t",Y,"\t",Z,"\t",E),nl, W1=W-1, azione1(W1).
azione2(W):- W>0,!, dati(X,Y,Z,E), Y= dottore, Z= sicilia, write(X,"\t\t",Y,"\t",Z,"\t",E),nl, W1=W-1, azione2(W1).
azione3(W):- W>0,!, dati(X,Y,Z,E), write(X,"\t\t",Y,"\t",Z,"\t",E),nl, W1=W-1, azione3(W1).
azione4(W):- W>0,!, dati(X,Y,Z,E), Y= studente, Z= veneto, write(X,"\t\t",Y,"\t",Z,"\t",E),nl, W1=W-1, azione4(W1).
azione5(W):- W>0,!, dati(X,Y,Z,E), E<=25, write(X,"\t\t",Y,"\t",Z,"\t",E),nl, W1=W-1, azione5(W1). azione6(W):-attribute(131), write("fine:premi enter "), readchar(H),attribute(7),exit.
/* classe1.pro */
domains nome = symbol eta=integer
predicates dati(nome,nome,nome,eta)
clauses dati(rossi,studente,veneto,34). dati(verdi,studente,veneto,21). dati(verdi,dottore,lazio,55). dati(basso,tecnico,lazio,23). dati(grassi,studente,emilia,14). dati(basso,studente,sicilia,15). dati(rossini,dottore,sicilia,66). dati(verdi,tecnico,veneto,34).