/* ori7.mar */
/* esempio database semplice con ricerca */

nowarnings
include "A:/orio/clienti.pro"
domains
predicates
 azione
 elabora(integer)
 archivio
 qualifica
 regione
 qualiregio
 qualicredi
 singolo
 anno
 credito
 opera
 goal azione.
clauses
 azione:-
 makewindow(1,5,1,"",1,1,20,78),opera.
 opera:-
 write("premi enter"),readchar(_),
 clearwindow,
 write("-----------------------"),nl,
 write("scrivi 1:archivio totale"),nl,
 write("scrivi 2:clienti con qualifica"),nl,
 write("scrivi 3:clienti in regione"),nl,
 write("scrivi 4:clienti con credito>=X"),nl,
 write("scrivi 5:con qualifica e regione"),nl,
 write("scrivi 6:con qualifica e credito>=X"),nl,
 write("scrivi 7:cliente da cercare"),nl,
 write("scrivi 8:clienti con eta>=X"),nl,
 write("scrivi 0:fine"),nl,
 readint(N),
 clearwindow,
 elabora(N).
 elabora(1):-archivio.
 elabora(2):-qualifica.
 elabora(3):-regione.
 elabora(4):-credito.
 elabora(5):-qualiregio.
 elabora(6):-qualicredi.
 elabora(7):-singolo.
 elabora(8):-anno.
 elabora(0):-exit.
 archivio:-
 write("stampa archivio dati completo"),nl,
 write("cogno","\tnome","\tquali","\tregio","\tcredi","\teta"),nl,
 nl,nl,
 cliente(X,A,B,C,D,E),
 write(X,"\t",A,"\t",B,"\t",C,"\t",D,"\t",E),
 nl,fail;opera.
 qualifica:-
 write("stampa nomi con qualifica"),nl,
 write("scrivi qualifica cercata:"),
 readln(Q),
 cliente(X,A,B,C,D,E),
 Q=B,
 write(X,"\t","\t",A,"\t",B,"\t",C,"\t",D,"\t",E),nl,fail;opera.
 regione:-
 write("stampa nomi abitanti in regione:"),nl,
 write("scrivi regione cercata:"),
 readln(R),
  cliente(X,A,B,C,D,E),
  R=C,
  write(X,"\t",A,"\t",C),nl,fail;
  opera.
 credito:-
 write("stampa creditori oltre valore:"),nl,
 write("scrivi limite credito da cercare:"),
 readint(CRE),
 cliente(X,A,B,C,D,E),
 D>CRE,
 write(X,"\t",A,"\t",D),nl,
 fail;opera.
 qualiregio:-
 write("clienti con qualifica in regione:"),nl,
 write("scrivi qualifica da cercare:"),nl,
 readln(Q),
 write("scrivi regione da cercare:"),nl,
 readln(R),
 cliente(X,A,B,C,D,E),
 Q=B,R=C,
 write(X,"\t",A,"\t",B,"\t",C),nl, 
 fail;opera.

 qualicredi:-
 write("cliente con qualifica e credito"),nl,
 write("scrivi qualifica da cercare:"),nl,
 readln(Q),
 write("scrivi limite credito:"),nl,
 readint(CRE),
 cliente(X,A,B,C,D,E),
 Q=B,D>=CRE,
 write(X,"\t",A,"\t",B,"\t",D),nl,
 fail;opera.

 singolo:-
 write("stampa dati cliente da indicare"),nl,
 write("cognome cliente:"),readln(Co),nl,
 write("nome cliente   :"),readln(No),nl,
 cliente(X,A,B,C,D,E),
 Co=X,No=A,
 write("cognome","\tnome","\tqua","\treg","\tcre","\teta"),nl,
 write(X,"\t",A,"\t",B,"\t",C,"\t",D,"\t",E),
 nl,fail;opera.

 anno:-
 write("clienti con eta oltre limite:"),nl,
 write("limite eta:"),nl,
 readint(Anni),
 cliente(X,A,B,C,D,E),
 E>=Anni,
 write(X,"\t",A,"\t",E),nl,
 fail;opera.

+--------------------------------------
¦+-------------------------------------
+¦-----------------------
+¦scrivi 1:archivio totale
¦¦scrivi 2:clienti con qualifica
¦¦scrivi 3:clienti in regione
¦¦scrivi 4:clienti con credito>=X
¦¦scrivi 5:con qualifica e regione
¦¦scrivi 6:con qualifica e credito>=X
¦¦scrivi 7:cliente da cercare
¦¦scrivi 8:clienti con eta>=X
¦¦scrivi 0:fine
¦¦
¦¦
+-----------------------------------------------
¦+----------------------------------------------
+¦bassi   aldo    operaio lazio   122     21
+¦grassi  luigi   operaio veneto  234     23
¦¦verdi   aldo    dottore veneto  123     34
¦¦rossi   alice   dottore veneto  125     45
¦¦rossi   carlo   dottore lazio   345     36
¦¦bassi   franco  operaio lazio   122     21
¦¦grassi  aldo    operaio veneto  234     23
¦¦verdi   elvira  dottore sicilia 123     34
¦¦rossi   alvise  dottore toscana 125     45
¦¦rossi   sergio  dottore emilia  345     36
¦¦bassi   giona   operaio marche  122     21
¦¦grassi  alberto operaio sicilia 234     23
¦¦verdi   maria   dottore friuli  123     34
¦¦bianchi pietro  dottore friuli  125     45
¦¦neri    pierino dottore emilia  345     36
+¦bassi   pietro  operaio sicilia 122     21
+¦pascoli pietro  operaio lazio   234     23
¦¦premi enter
+-----------------------------------------------------
¦+----------------------------------------------------
+¦stampa nomi con qualifica
+¦scrivi qualifica cercata:dottore
¦¦verdi           mario   dottore veneto  123     34
¦¦rossi           anna    dottore veneto  125     45
¦¦rossi           luigi   dottore lazio   345     36
¦¦verdi           aldo    dottore veneto  123     34
¦¦rossi           alice   dottore veneto  125     45
¦¦rossi           carlo   dottore lazio   345     36
¦¦verdi           elvira  dottore sicilia 123     34
¦¦rossi           alvise  dottore toscana 125     45
¦¦rossi           sergio  dottore emilia  345     36
¦¦verdi           maria   dottore friuli  123     34
¦¦bianchi         pietro  dottore friuli  125     45
¦¦neri            pierino dottore emilia  345     36
¦¦premi enter
+¦
+¦
+-------------------------------------
¦+------------------------------------
+¦stampa nomi abitanti in regione:
+¦scrivi regione cercata:sicilia
¦¦verdi   elvira  sicilia
¦¦grassi  alberto sicilia
¦¦bassi   pietro  sicilia
¦¦premi enter
¦¦
+-----------------------
¦+----------------------
+¦bassi   aldo    122
+¦grassi  luigi   234
¦¦verdi   aldo    123
¦¦rossi   alice   125
¦¦rossi   carlo   345
¦¦bassi   franco  122
¦¦grassi  aldo    234
¦¦verdi   elvira  123
¦¦rossi   alvise  125
¦¦rossi   sergio  345
¦¦bassi   giona   122
¦¦grassi  alberto 234
¦¦verdi   maria   123
¦¦bianchi pietro  125
¦¦neri    pierino 345
+¦bassi   pietro  122
+¦pascoli pietro  234
¦¦premi enter
¦+----------------------
+--------------------------------------
¦+-------------------------------------
+¦clienti con qualifica in regione:
+¦scrivi qualifica da cercare:
¦¦dottore
¦¦scrivi regione da cercare:
¦¦sicilia
¦¦verdi   elvira  dottore sicilia
¦¦premi enter
¦¦
¦¦
¦¦
+---------------------------------
¦+--------------------------------
+¦cliente con qualifica e credito
+¦scrivi qualifica da cercare:
¦¦dottore
¦¦scrivi limite credito:
¦¦100
¦¦verdi   mario   dottore 123
¦¦rossi   anna    dottore 125
¦¦rossi   luigi   dottore 345
¦¦verdi   aldo    dottore 123
¦¦rossi   alice   dottore 125
¦¦rossi   carlo   dottore 345
¦¦verdi   elvira  dottore 123
¦¦rossi   alvise  dottore 125
¦¦rossi   sergio  dottore 345
¦¦verdi   maria   dottore 123
+¦bianchi pietro  dottore 125
+¦neri    pierino dottore 345
¦¦premi enter
+------------------------------------------------
¦+-----------------------------------------------
+¦stampa dati cliente da indicare
+¦cognome cliente:rossi
¦¦
¦¦nome cliente   :luigi
¦¦
¦¦cognome nome    qua     reg     cre     eta
¦¦rossi   luigi   dottore lazio   345     36
¦¦premi enter
¦¦
¦¦
+------------------------------------
¦+-----------------------------------
+¦clienti con eta oltre limite:
+¦limite eta:
¦¦30
¦¦verdi   mario   34
¦¦rossi   anna    45
¦¦rossi   luigi   36
¦¦verdi   aldo    34
¦¦rossi   alice   45
¦¦rossi   carlo   36
¦¦verdi   elvira  34
¦¦rossi   alvise  45
¦¦rossi   sergio  36
¦¦verdi   maria   34
¦¦bianchi pietro  45
¦¦neri    pierino 36
+¦premi enter
+¦

 
ritorna