Различные примеры заданий.
1)
а)Задача про телефоны
predicates
имя(symbol, symbol)
clauses
имя(вася, "23-23-23").
имя(петя, "24-23-23").
имя(варя, "25-23-23").
имя(катя, "не_имеет").
имя(тоха, "24-23-23").
имя(петя, "823-23-23").
имя(саша, "не_имеет").
имя(мент, "02").
goal
%имя (Кто,_),
%имя (мент, Телефон),
%имя (Кто, "02"),
имя (Кто, Телефон),
%Телефон <> "не_имеет",
имя (Кто1, Телефон1),
Кто<>Кто1,
Телефон=Телефон1,
Телефон<>"не_имеет",
Телефон1<>"не_имеет".
Б) “Организация турнира по теннису”
predicates
игрок(symbol, integer)
один_возраст(symbol,symbol)
clauses
игрок(иванов, 25).
игрок(петров, 40).
игрок(сидоров, 25).
игрок(николаев, 40).
игрок(муштаев, 25).
один_возраст(Кто1, Кто2):-
игрок(Кто1,Возр1),
игрок(Кто2,Возр2),
Возр1=Возр2,
Кто1<>Кто2.
goal
один_возраст(Кто1, Кто2).
2) А) Составить программу вычисления арифметического выражения.
Б)Для каждого задания написать 3 варианта программ:
- с заданием переменных в теле программы,
- с введением данных с клавиатуры,
- с заданием значений переменных с помощью генератора случайных чисел.
В)Используя тригонометрические функции Visual Prolog построить таблицу синусов,
косинусов, тангенсов на экране. Левая колонка таблицы должна содержать величину
угла в градусах, начиная от 0 до 360 градусов с шагом 60 градусов.
Г) Написать программу: В компании из десяти человек выбрать трех, которые побегут за
Клинским, чипсами, раками. Определить счастливого обладателя приза BMW.
В16 |
1. COS(3.8*Y)+lg(6.5X)-12XY6 2. X4-ln(14) +3X2Y+1/9 |
а) и б)
predicates
result1(real,real)
result2(real,real)
clauses
result1(X,Y):-
C=cos(3.8*Y)+log(6.5*X)-12*X*exp(6*ln(Y)),
write(C),nl.
result2(X,Y):-
C=exp(4*ln(X))-ln(14)+3*exp(2*ln(X))*Y+1/9,
write(C),nl.
goal
%write("расчет первого числа X="), result1(2,3),
%write("расчет второго числа Y="), result2(2,3).
%write("введите первое число X="), readreal(X),
%write("введите второе число Y="), readreal(Y),
%write("расчет первого числа X="), result1(X,Y),
%write("расчет второго числа Y="), result2(X,Y).
random(X),
random(Y),
write("расчет первого числа X="), result1(X,Y),
write("расчет второго числа Y="), result2(X,Y).
в)
predicates
result (real)
result1(real)
clauses
result(X):-
Y=cos(X*3.14/180),
write(X," ",Y),nl.
result1(X):-
Y=sin(X*3.14/180),
write(X," ",Y),nl.
goal
write("*Косинусы*"),nl,
result(0),
result(60),
result(120),
result(180),
result(240),
result(300),
result(360),
write("*Синусы*"),nl,
result1(0),
result1(60),
result1(120),
result1(180),
result1(240),
result1(300),
result1(360).
г).
predicates
%rand1(integer)
человек(integer,string)
clauses
человек(0,"Саша").
человек(1,"Виталя").
человек(2,"Ваня").
человек(3,"Вова").
человек(4,"Света").
человек(5,"Стас").
человек(6,"Лена").
человек(7,"Женя").
человек(8,"Андрей").
человек(9,"Наташа").
goal
randominit(4),
random(10,X),
random(10,X1),
random(10,X2),
random(10,X3),
человек(X,Y),
человек(X1,Y1),
человек(X2,Y2),
человек(X3,Y3),
write(Y," Идет за Клинским "),nl,
write(Y1," Идет за Чипсами "),nl,
write(Y2," Идет за Раками "),nl,
write(Y3," Обладает машиной BMW "),nl.
3) По имеющейся схема рассчитать параллельные узлы и общий узел
predicates
элемент (symbol, symbol, integer, integer)
общий_узел (symbol, symbol, integer)
паралельное_соединение (symbol, symbol, integer, integer)
clauses
элемент (l1, катушка, 1, 12).
элемент (r1, резистор, 1, 11).
элемент (p3, лампочка, 1, 15).
элемент (i1, источник, 1, 12).
элемент (r5, резистор, 14, 9).
элемент (r3, резистор, 11, 9).
элемент (l3, катушка, 11, 9).
элемент (r4, резистор, 14, 11).
элемент (r2, резистор, 12, 8).
элемент (c2, конденсатор, 12, 14).
элемент (p2, лампочка, 12, 9).
элемент (с1, конденсатор, 14, 15).
элемент (p1, лампочка, 8, 14).
паралельное_соединение (Э1, Э2, Узел1, Узел2) :-
элемент (Э1,_,Узел1,Узел2), элемент(Э2,_,Узел1,Узел2), Э1<>Э2;
элемент (Э1,_,Узел1,Узел2), элемент(Э2,_,Узел2,Узел1), Э1<>Э2.
общий_узел (Э1,Э2,Узел1) :-
элемент (Э1,_,Узел1,_), элемент(Э2,_,Узел1,_), Э1<>Э2;
элемент (Э1,_,Узел1,_), элемент(Э2,_,_,Узел1), Э1<>Э2;
элемент (Э1,_,_,Узел1), элемент(Э2,_,Узел1,_), Э1<>Э2;
элемент (Э1,_,_,Узел1), элемент(Э2,_,_,Узел1), Э1<>Э2.
goal
паралельное_соединение (Э1, Э2, Узел1, Узел2).
%общий_узел (Э1,Э2,Узел1).
4) А) Какие ответы даст программа, содержащая следующие факты и правила:
р(1).
р(2) : - !.
р(3).
Цели: р(Х); р(Х), р(У); р(Х), !, р(У).
Б) Составить программу решения двухступенчатой функции, используя бинарное отношение f(X,Y) , без применения отсечений; применив зеленые отсечения в двух первых правилах; используя красные отсечения.
Правило 1: если X<3, то Y=0.
Правило 2: если X>3 и X<6, то Y=2.
Правило 3: если X>=6, то Y=4.
В)Составить программу определения наименьшего (наибольшего) из двух чисел (X,Y) без применения отсечений и с применением зеленых и красных отсечений.
Г)Выполнить задания согласно вариантам, используя предикаты fail, cut (!).
А) р(Х)
predicates
nondeterm p(integer)
clauses
p(1).
p(2):-
!.
p(3).
goal
p(X).
р(Х), р(У)
predicates
p(integer)
clauses
p(1).
p(2):-
!.
p(3).
goal
p(X),
p(Y).
р(Х), !, р(У)
predicates
p(integer)
clauses
p(1).
p(2):-!.
p(3).
goal
p(X),!,p(Y).
Б)
predicates
nondeterm f(integer,integer)
clauses
f(X,Y):-X<3,Y=0.
f(X,Y):-X>=3,X<6,Y=2.
f(X,Y):-X>=6,Y=4.
goal
readint (X),
f(X,Y).
predicates
nondeterm f(integer,integer)
clauses
f(X,Y):-X<3,!,Y=0.
f(X,Y):-X<6,!,Y=2.
f(X,Y):-Y=4.
goal
readint (X),
f(X,Y).
В) predicates
nondeterm сравнение(integer,integer)
clauses
сравнение(X,Y):-X>Y,write(X, "больше чем ",Y,"\n").
сравнение(X,Y):-Y>X,write(Y, " больше чем ",X,"\n").
сравнение(X,Y):-X=Y,write(X, " и ",Y," - равны").
goal
readint (X),
readint (Y),
сравнение(X,Y).
predicates
nondeterm сравнение(integer,integer)
clauses
сравнение(X,Y):-X>Y,!,write(X, "больше чем ",Y,"\n").
сравнение(X,Y):-Y>X,!,write(Y, "больше чем",X,"\n").
сравнение(X,Y):-write(X, " и ",Y," - равны").
goal
readint (X),
readint (Y),
сравнение(X,Y).
Г) Составить расписание всех игр (дома и в гостях) для группы из 4-х футбольных команд.
predicates
команда(integer)
игра(integer,integer)
clauses
команда(1).
команда(2).
команда(3).
команда(4).
игра(A,B):-
команда(A),
команда(B),
A<>B,
write("команда",A,"играет с командой",B,"\n"),
fail.
goal
игра(A,B).
5)А) По заданному взаимоотношению или объекту составить модель знаний в виде семантической сети и изобразить ее графически. В семантической сети должно быть не менее 7-и элементов. Каждый элемент должен характеризоваться свойствами или функциями (3 и больше).
Например, при построении семантической сети арки рассматривать свойства колон (опора 1 сделана из кирпича, опора 2 – металл, перекладина деревянная). Тогда в разделе цели возможно определить материалы требуемые для построения арки.
Б)Полученную модель знаний реализовать в виде программы на языке Prolog.
В)Составить цели (не менее 4 шт.), которые можно достигнуть по вашей модели знаний. При реализации цели должно быть задействовано как можно большее количество связей сети.
Модель знаний:
Программа:
PREDICATES
nondeterm imeetmag(symbol,symbol)
nondeterm imeetkas(symbol,symbol)
nondeterm imeet(symbol,symbol)
nondeterm yavlyaetsya(symbol,symbol)
nondeterm chto_imeetsya(symbol,symbol)
nondeterm obslygivaet(symbol,symbol)
nondeterm chem_yavlyaetsya(symbol,symbol)
nondeterm otdel(symbol,symbol)
CLAUSES
chto_imeetsya(Otdel,Prodykti):- imeet(Otdel,Prodykti).
imeet(ovoshnoj_otdel,pomidor).
imeet(ovoshnoj_otdel,perec).
imeet(ovoshnoj_otdel,ogyrec).
imeet(myasnoj_otdel,govyadina).
imeet(myasnoj_otdel,svinina).
imeet(myasnoj_otdel,okorochka).
imeet(ribnij_otdel,mintaj).
imeet(ribnij_otdel,kita).
imeet(ribnij_otdel,seledka).
obslygivaet(Otdel,Kassa):- imeetkas(Otdel,Kassa).
imeetkas(ovoshnoj_otdel,kassa1).
imeetkas(myasnoj_otdel,kassa2).
imeetkas(ribnij_otdel,kassa3).
otdel(Magazin,Otdel):-imeetmag(Magazin,Otdel).
imeetmag(prodyktovij_magazin,ovoshnoj_otdel).
imeetmag(prodyktovij_magazin,myasnoj_otdel).
imeetmag(prodyktovij_magazin,ribnij_otdel).
chem_yavlyaetsya(Prodykt,Yavlyaetsya):-yavlyaetsya(Prodykt,Yavlyaetsya).
yavlyaetsya(pomidor,ovosh).
yavlyaetsya(perec,ovosh).
yavlyaetsya(ogyrec,ovosh).
yavlyaetsya(govyadina,myaso).
yavlyaetsya(svinina,myaso).
yavlyaetsya(okorochka,myaso).
yavlyaetsya(mintaj,riba).
yavlyaetsya(kita,riba).
yavlyaetsya(seledka,riba).
GOAL
chto_imeetsya(Otdel,Prodykti).
%obslygivaet(Otdel,Kassa).
% otdel(Magazin,Otdel).
%chem_yavlyaetsya(Prodykt,myaso).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.