Использование предикатов fail, not, cut (неуспех, отрицание и отсечение).


Лабораторная работа № 2.

Тема: Использование предикатов fail, not, cut (неуспех, отрицание и отсечение).
Выполнила

2. Написать программу вычисления с альтернативами:
— Найти наибольшее (наименьшее) значение из двух чисел.
— Найти наибольшее (наименьшее) значение из трех чисел.
— Найти наибольшее (наименьшее) значение из шести чисел.

predicates
min(integer,integer).
max(integer,integer).
min(integer,integer,integer).
max(integer,integer,integer).
min(integer,integer,integer,integer,integer,integer).
max(integer,integer,integer,integer,integer,integer).
clauses
min (X,Y):- XY , write («1.Maximalnoe chislo = «,X,»\n»), ! .
max (X,Y):- Y>X , write («1.Maximalnoe chislo = «,Y,»\n»).

min (X,Y,Z):- XY , X>Z, write («2.Maximalnoe chislo = «,X,»\n»), ! .
max (X,Y,Z):- Y>X , Y>Z, write («2.Maximalnoe chislo = «,Y,»\n»), ! .
max (X,Y,Z):- Z>X , Z>Y, write («2.Maximalnoe chislo = «,Z,»\n»).

min (X,Y,Z,V,W,Q):- XY , X>Z, X>V, X>W, X>Q, write («3.Maximalnoe chislo = «,X,»\n»), ! .
max (X,Y,Z,V,W,Q):- X>Y , Y>Z, Y>V, Y>W, Y>Q, write («3.Maximalnoe chislo = «,Y,»\n»), ! .
max (X,Y,Z,V,W,Q):- Z>X , Z>Y, Z>V, Z>W, Z>Q, write («3.Maximalnoe chislo = «,Z,»\n»), ! .
max (X,Y,Z,V,W,Q):- V>Y , V>Z, V>X, V>W, V>Q, write («3.Maximalnoe chislo = «,V,»\n»), ! .
max (X,Y,Z,V,W,Q):- W>Y , W>Z, W>V, W>X, W>Q, write («3.Maximalnoe chislo = «,W,»\n»), ! .
max (X,Y,Z,V,W,Q):- Q>X , Q>Y, Q>Z, Q>V, Q>W, write («3.Maximalnoe chislo = «,Q,»\n») .

GOAL:
random(100,A),random(100,B),
min(A, B),
max(A, B),

random(100,C), random(100,D), random(100,E),
min( C, D, E),
max( C, D, E),

random(100,G), random(100,K), random(100,L), random(100,M), random(100,N), random(100,P),
min(G,K,L,M,N,P),
max(G,K,L,M,N,P).

18. В соревнованиях по плаванию участвовали Андрей, Виктор, Саша и Дима. Их друзья высказали предположения о возможных победителях:
1) первым будет Саша, Виктор будет вторым;
2) вторым будет Саша, Дима будет третьим;
3) Андрей будет вторым, Дима будет четвёртым.
По окончании соревнований оказалось, что в каждом из предположений только одно из высказываний истинно, другое ложно. Какое место на соревнованиях занял каждый из юношей, если все они заняли разные места.

predicates

fakt(symbol,integer)
fak(symbol,integer)
fa(symbol,integer)
man(symbol)
l().

clauses

man(sasha).
man(viktor).
man(dima).
man(andrei).

fakt(sasha,1).
fakt(viktor,2).
fak(sasha,2).
fak(dima,3).
fa(andrei,2).
fa(dima,4).

l():-
fakt(Z,X),
fak(C,V),
fa(B,N),

Z<>C,Z<>B,C<>B,
X<>V,X<>N,V<>N,
R=10-X-V-N,
fakt(_,T),T<>R,
fak(_,Y),Y<>R,
fa(_,U),U<>R,

man(K),K<>Z,K<>C,K<>B,
write(Z,»- «,X,»,»,B,»- «,N,»,»,C,»- «,V,»,»,K,»- «,R,».\n»).

goal
l().

Загрузка...