cercare2
cercare elementi
/*pro74.map */
NOWARNINGS domains valore,editrice,titolo,autore,genere = symbol anno,prezzo = integer
predicates disco(titolo,autore,genere) prodotto(titolo,anno) dati(titolo,editrice,prezzo) valore(titolo) cerca(titolo,autore,genere) tipo(titolo,autore,genere) clauses disco(volare,verdi,melodico). disco(piove,verdi,sinfonico). disco(amore,rossini,melodico). disco(traviata,verdi,lirico). disco(elisir,donizzetti,sinfonico). disco(trovatore,verdi,lirico). prodotto(volare,1987). prodotto(piove,1976). prodotto(amore,1987). prodotto(traviata,1876). prodotto(elisir,1987). prodotto(trovatore,1876). dati(volare,sei,1200). dati(piove,zannichelli,2000). dati(amore,sei,4000). dati(traviata,scuola,6000). dati(elisir,vallardi,7000). dati(trovatore,vallardi,4000). valore(piove). valore(volare). valore(traviata). valore(elisir). /* stampa solo autori con libro valido */ cerca(X,Y,Z) if disco(X,Y,Z) and valore(X).
/* stampa solo autori di lirica */ tipo(X,Y,Z) if disco(X,Y,Z) and Z=lirico.
/* pro75.map */ nowarnings domains nome,citta,regione = symbol indirizzo = string telefono = integer
predicates dati(nome,indirizzo,citta,regione,telefono) clauses dati(verdi,via_padova_4,verona,veneto,123). dati(rossi,via_verona_6,padova,veneto,222). dati(bassi,via_roma_7,verona,veneto,222). dati(bassi,via_treviso_8,milano,lombardia,111). dati(neri,via_venezia_8,torino,piemonte,222).
/* pro76.map */
nowarnings domains allievo = symbol peso,altezza = integer predicates nome(allievo,peso,altezza) maschio(allievo) femmina(allievo) peso(allievo,peso,altezza) alto(allievo,peso,altezza) duplice(allievo,peso,altezza) sesso(allievo,peso,altezza) clauses nome(luigi,40,150). nome(carlo,50,160). nome(anna,40,120). nome(paolo,50,160). nome(alice,45,150). nome(elisa,50,140). maschio(luigi). maschio(carlo). maschio(paolo). femmina(anna). femmina(alice). femmina(elisa).
peso(Allievo,Peso,Altezza) if nome(Allievo,Peso,Altezza) and Peso=50.
alto(Allievo,Peso,Altezza) if nome(Allievo,Peso,Altezza) and Altezza <=150.
duplice(Allievo,Peso,Altezza) if nome(Allievo,Peso,Altezza) and Peso<50 and Altezza <160.
sesso(Allievo,Peso,Altezza) if nome(Allievo,Peso,Altezza) and Peso<=40 and maschio(Allievo).
/* pro77.map */ /* dati(N,G,M,A,R) */ /* dati(N,_,12,_,R) */
nowarnings domains nome,regione = symbol giorno,mese,anno = integer predicates dati(nome,giorno,mese,anno,regione) clauses dati(luigi,10,12,1987,veneto). dati(paolo,15,11,1987,veneto). dati(anna,17,11,1976,lazio). dati(carlo,12,11,1986,veneto). dati(aldo,17,10,1976,lazio). dati(elisa,23,4,1986,sicilia).