.


:




:

































 

 

 

 





, . , , . , , . - domains. , . , . .

12: , . personal_library, : personal_library= book (title, author, publisher, year), collection (collector, personal_library). book . , , 1990 , :

domains

collector, title, author, publisher = symbol

year = integer

personal_library = book (title, author, publisher, year)

predicates

collection (collector, personal_library)

clauses

collection (irina, book (Using Turbo Prolog, Yin with Solomon,Moscow, World, 1993)).

collection (petr, book (The art of Prolog, Sterling with Shapiro,Moscow, World, 1990)).

collection (anna, book (Prolog: a relation language and its applications, John Malpas,Moscow, Science, 1990)).

goal

collection (X, book(Y,_, _, 1990)

. . .

13: , .

domains

person, title, author, artist, album, type = symbol

thing = book (title, author); record (artist, album, type)

predicates

owns (person, thing)

clauses

owns (irina, book (Using Turbo Prolog, Yin with Solomon)).

owns (petr, book (The art of Prolog, Sterling with Shapiro)).

owns (anna, book (Prolog: a relation language and its applications, John Malpas)).

owns (irina, record (Elton John, Ice Fair, popular)).

owns (petr, record (Benny Goodman, The King of Swing,jazz)).

owns (anna record (Madonna, Madonna, popular)).

goal

owns (X, record(_, _, jazz)

14:

( 5 ). . , , , .

. : , , , . : , , -, .

:

1. , .

2. , .

3. , .

:

list_colours - , list_products - , name_shop - , address , chief, - , name_product , country - -, price .

shop , , q1,q2, q3 , , , q21, q31 , max , .

domains

list_colours = symbol*

list_products = product*

name_shop, address, chief, name_product, country = symbol

price =real

product = prod (name_product, price, country, list_colours)

facts

max(name_product, price)

predicates

shop (name_shop, address, chief, list_products)

q1(chief)

q2(name_product)

q21(name_product, list_products)

q3

q31(list_products)

clauses

shop("Company1","Debenko_5","Ivanov",[prod(table,3000,"Italy",[white, red, black]),prod(chair,4000,"Japan",[brown, grey])]).

shop("Company2","S.Lazo_4","Petrov",[prod(sofa,9000,"China",[brown, black]),prod(chair,5000,"England",[red, grey])]).

shop("Company3","Sadovaya_3","Sidorov",[prod(sofa,19000,"Mexico", [black, white])]).

shop("Company4","Dachnaya_2","Orlov",[prod(bookcase,7000,"Russia", [brown, black]),prod(table,6000,"Spain",[red,grey])]).

shop("Company5","Pobeda_1","Galkin",[prod(bed,5000,"China",[brown, black]),prod(arm_chair,21000,"Japan",[red, grey])]).

% : shop, , , F, A.

q1(F):-shop (_,A,F,_),write(A),nl.

% : shop, N L, q21, P L, q21 , , .

q2(P):-shop(N,_,_,L),q21(P,L),write(N),nl,fail.

q21(H,[H1|_]):-H1=prod(H,_,_,_).

q21(H,[_|T]):-q21(H,T).

% : max , , a 0, , , , , shop, L, q31, L, q31 , , , , max, retract , assert , .

max(a,0).

q3:-shop(_,_,_,L),q31(L),fail.

q31([]).

q31([H1|T]):-H1=prod(H,P,_,_), max(A,B), P>B, retract(max(A,B)), assert(max(H,P)), q31(T).

q31([H1|T]):-H1=prod(_,P,_,_),max(_,B),P<=B,q31(T).

goal

% .

q1("Petrov").

%q2(table).

%q3;max(A,B).

15: . . , . , . , .

domains

list_colours = symbol*

list_products = product*

name_shop,address,chief,name_product,country = symbol

price =real

product = prod (name_product,price,country,list_colours)

facts

max(name_product,price)

%

dq1(address)

dq2(name_shop)

predicates

shop (name_shop,address,chief,list_products)

q1(chief)

q2(name_product)

q21(name_product,list_products)

q3

q31(list_products)

clauses

shop("Company1","Debenko_5","Ivanov",[prod(table,3000,"Italy",[white,

red,black]),prod(chair,4000,"Japan",[brown,grey])]).

shop("Company2","S.Lazo_4","Petrov",[prod(sofa,9000,"China",[brown,

black]),prod(chair,5000,"England",[red,grey])]).

shop("Company3","Sadovaya_3","Sidorov",[prod(sofa,19000,"Mexico",

[black,white])]).

shop("Company4","Dachnaya_2","Orlov",[prod(bookcase,7000,"Russia",

[brown,black]),prod(table,6000,"Spain",[red,grey])]).

shop("Company5","Pobeda_1","Galkin",[prod(bed,5000,"China",[brown,

black]),prod(arm_chair,21000,"Japan",[red,grey])]).

% , , , , "*".

q1(_):-dq1(A), write("*",A),nl.

% , .

q1(F):-not(dq1(_)), shop (_,A,F,_),write(A),nl,assert(dq1(A)).

q2(_):-dq2(A), write("*",A),nl,fail.

q2(P):-not(dq2(_)), shop(N,_,_,L),q21(P,L),write(N),nl,assert(dq2(N)),fail.

q21(H,[H1|_]):-H1=prod(H,_,_,_).

q21(H,[_|T]):-q21(H,T).

max(a,0).

q3:-shop(_,_,_,L),q31(L),fail.

q31([]).

q31([H1|T]):-H1=prod(H,P,_,_),max(A,B),P>B,retract(max(A,B)),assert(max(H,P)),q31(T).

q31([H1|T]):-H1=prod(_,P,_,_),max(_,B),P<=B,q31(T).

goal

% - , .

q1("Petrov"),q1("Petrov").

%q2(table);q2(table).

%q3;max(A,B).

16: . , , . , . , ; ; ; ; ; ; ; ; ; , , , , ; , , ; , , ; ; , , . , , ?

domains

% - , , , .

house=h(colour,nationality,pet,drink,cigarette)

houses=house*

colour,nationality,pet,drink,cigarette=symbol

predicates

colour(house, colour)

nationality(house, nationality)

pet(house, pet)

drink(house, drink)

cigarette(house, cigarette)

first(house,houses)

middle(house,houses)

solve

neighbourhood(house, house,houses)

neighbourhoodright(house, house,houses)

clauses

%

colour(h(C,_,_,_,_),C).

%

nationality(h(_,N,_,_,_),N).

%

pet(h(_,_,P,_,_),P).

%

drink (h(_,_,_,D,_),D).

%

cigarette(h(_,_,_,_,S),S).

% -

first(X,[X,_,_,_,_]).

%

middle(Y,[_,_,Y,_,_]).

%

neighbourhood(A,B,[A,B,_,_,_]).

neighbourhood(A,B,[B,A,_,_,_]).

neighbourhood(A,B,[_,A,B,_,_]).

neighbourhood(A,B,[_,B,A,_,_]).

neighbourhood(A,B,[_,_,A,B,_]).

neighbourhood(A,B,[_,_,B,A,_]).

neighbourhood(A,B,[_,_,_, A,B]).

neighbourhood(A,B,[_,_,_, B,A]).

% , B A

neighbourhoodright (A,B,[A,B,_,_,_]).

neighbourhoodright (A,B,[_,A,B,_,_]).

neighbourhoodright (A,B,[_,_,A,B,_]).

neighbourhoodright (A,B,[_,_,_, A,B]).

%

solve:- neighbourhood(H1,_,Houses), nationality(H1,englishman), colour(H1,red),

%;

neighbourhood(H2,_,Houses), nationality(H2, spaniard), pet(H2,dog),

%

neighbourhood(H3,_,Houses), colour(H3,green), drink(H3, coffee),

%

neighbourhood(H4,_,Houses), nationality(H4, ukrainian),

drink(H4, tea),

%

neighbourhoodright(H5,H6,Houses), colour(H6,green),

colour(H5, ivory),

%

neighbourhood(H7,_,Houses), cigarette(H7,winston), pet(H7, snail),

% ;

neighbourhood(H8,_,Houses), cigarette(H8,cool), colour(H8, yellow),

%

middle(H9,Houses), drink(H9, milk),

% ;

first(H10, Houses), nationality(H10, norwegian),

% , , , ,

neighbourhood(H11,H12,Houses), cigarette(H11,chesterfild),pet(H12,fox),

%; , ,

neighbourhood(H13,H14,Houses), cigarette(H13,cool),pet(H14,horse),

% , ,

neighbourhood(H15,_,Houses),cigarette(H15,lakestrike), drink(H15,orange),

%

neighbourhood(H16,_,Houses),nationality(H16,japanese), cigarette(H16,parlament),

%

neighbourhood(H17,H18,Houses),nationality(H17,norwegian), colour(H18,blue),

%

neighbourhood(H19,_,Houses), pet(H19,zebra),

%

neighbourhood(H20,_,Houses), drink(H20,water),

write(Houses).

goal

solve.





:


: 2015-10-01; !; : 371 |


:

:

.
==> ...

1577 - | 1439 -


© 2015-2024 lektsii.org - -

: 0.072 .