Пример запроса к программе 1



Программа 2.

Пусть требуется определить значение функции в зависимости от

условия.

 

Текст программы 2.

run:- write('Input A,B, U:'),nl,

read(A), number(A), read(B), number(B),

read(U), number(U), func(A,B,U,Y),

write('Y = '), write(Y),nl.

func(A,B,U,Y):-U<A,Y is U^2+A.

func(A,B,U,Y):-A=<U,U=<B,Y is B-U.

func(A,B,U,Y):- U>B,Y is (A+B)/(U^2+1).

Пример запроса к программе 2.

Программа 3. Использование предиката отсечения.

 run:- write('Input A,B, U:'),nl,

read(A), number(A), read(B), number(B),

read(U), number(U), func(A,B,U,Y),

write('Y = '), write(Y),nl.

func(A,_,U,Y):-U<A,!,Y is U^2+A.

func(_,B,U,Y):- U=<B,!,Y is B-U.

func(A,B,U,Y):- Y is (A+B)/(U^2+1).

 

Пример запроса.

 

 

Использование стандартного предиката управления логическим выводом fail.

Предикат fail используется для программирования повторяющихся действий (циклических программ). В общем случае итерационное правило имеет следующий вид:

<заголовок итерационного правила>:¾<предикаты>,fail.

 

Программа 4.

city('Deli', 'India', 'Asia').

city('Moscow', 'Russia', 'Europe' ).

city('Praha', 'Chehia', 'Europe' ).

city('London', 'Endland', 'Europe' ).

city('Rome', 'Italy', 'Europe' ).

city('Mexico', 'Mexica', 'America' ).

city('Pekin', 'China', 'Asia' ).

city('Tokio', 'Japan', 'Asia' ).

 show_cities(K):-city(X,_, K),write(X),nl,fail.

show_cities(_).

 

Пример запроса.

 

 

Программа 5

 

lector('Stepanov','Geografiya','TPR','090608').

lector('Panov','Informatika','ASP','140608').

lector('Lushin','Ekonomika','ASP','170608').

lector('Katovcev','Cherchenie','AY','170608').

lector('Zelgedis','Mehanika','TPR','230608').

student('Ivashin','TPR','83292').

student('Kuznecova','TPR','38903').

student('Dragunova','TPR','92092').

student('Pervova','TPR','31024').

student('Cigankov','TPR','18949').

student('Shuvalov','ASP','30082').

student('Bazdreva','ASP','89009').

student('Faizulina','ASP','32990').

student('Gusev','ASP','87376').

student('Fomichev','ASP','90032').

student('Krapivencev','AY','22186').

student('Kononova','AY','69777').

student('Loiter','AY','23992').

student('Qwesar','AY','39992').

student('Vorasat','AY','99610').

% Выдать на экран фамилии всех студентов, которые сдают экзамен определенного числа, дата

% задается следующим образом: ‘хх.хх.xxxx’:

 

a:-write('Vvedite daty: '),read(N),nl,

write('Familii studentov: '),nl,lector(_,_,X,N),student(Y,X,_),

write(Y),nl,fail.

a.

 

 


Дата добавления: 2018-04-05; просмотров: 492; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!