Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2017, 17:23   #1
прохор1234
Новичок
Джуниор
 
Регистрация: 09.02.2017
Сообщений: 1
По умолчанию Уважаемые программисты,нужно добавить аргументы в предикаты (visual prolog 5.2)

Задача состоит в создании программы, содержащей базу данных о расписании занятий группы студентов в университете. Эта программа должна отвечать на вопросы, наподобие приведенных ниже:
1) Занят ли лектор Иван Иванович Иванов в понедельник в 9 часов?
2) В каком корпусе университета находится 456 аудитория?
3) Занята ли 456 аудитория во вторник в 16 часов?

ВОТ , ЧТО УЖЕ СДЕЛАНО.

domains
crs,day,room,building=symbol
length,t=integer
time=time(symbol,integer,integer)
lect=lect(symbol,symbol,symbol)
loc=loc(symbol,symbol)

predicates
course(crs,time,lect,loc)
lecturer(lect,crs)
duration(crs,length)
occupied(room,day,t)
location(room,building)
busy(lect,day,t)
rule1
rule2
rule3


clauses
lecturer(Lecturer,Course):-
course(Course,_,Lecturer,_).
duration(Course,Length):-
course(Course,time(_,Start,Finish), _,_),
Length=Finish-Start.
occupied(Room,Day,Time):-
course(_,time(Day,Start,Finish),_,l oc(_,Room)),
Start<=Time,Time<=Finish.
Location(Room,Building):-
course(_,_,_,loc(Building,Room)).
busy(Lecturer,Day,Time):-
course(_,time(Day,Start,Finish),Lec turer,_),
Start<=Time,Time<=Finish.
course(matematica,time(poned,9,12), lect(ivanov,ivan,ivanuc),loc(old,a_ 211)).
course(programirovanie,time(vtor,15 ,17),lect(sydorov,sydor,sydorovic), loc(new,a_456)).
course(fizika,time(sr,8,14),lect(ab ramov,abram,abramovic),loc(old,a_32 5)).
rule1:-
busy(lect(Ivanov,Ivan,Ivanuc),poned ,13),write("Yes"),nl;
write("No"),nl.
rule2:-
location(a_456,B),write(B),nl;
write("No such room"),nl.
rule3:-
occupied(a_456,vtor,16),write("Yes" ),nl;
write("No"),nl.

goal
%busy(lect(Ivanov,Ivan,Ivanuc),pone d,13).
%location(a_456,B).
occupied(a_456,vtor,11).
rule1, rule2, rule3.
прохор1234 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Предикаты / Факты - Prolog alina1995 Помощь студентам 0 02.12.2016 17:39
Уважаемые программисты объясните пожалуйста как мне составить программу.Microsoft Visual Studio 2010 Мартен Помощь студентам 4 26.03.2015 09:15
Уважаемые программисты нужно как можно скорее исправить задачу по Паскалю Axandra Помощь студентам 2 29.05.2009 20:12