TURBO PROLOG. Терёхин В.В. - 48 стр.

UptoLike

Составители: 

48
Последние три объекта предиката president - целые числа, их доме-
нами являются соответственно birth_year, year_in и year_out. Объявление
доменов в разделе программы domains выглядит достаточно просто:
birth_year,year_in,year_out = integer
Запятая в этом объявлении служит в качестве разделителя при перечислении
имен доменов одного типа.
Цель программы на естественном языке можно сформулировать сле-
дующим образом: "Выдать место
, год рождения, начальный и конечный год
пребывания у власти всех президентов-демократов." Первая подцель со-
держит свободные переменные Х, S, Yb, Yi и Yo, и значение объекта
democrat. (Заметим, что в данном примере имена переменных являются
ключом для понимания смысла соответствующих объектов, так, например,
Yb - это "year of birth" - год рождения.). Когда программа запускается на
счет
, свободным переменным присваиваются соответствующие значения
из второго утверждения. Следующие пять подцелей включают в себя
предикаты write для печати этих значений в разных строках экрана. Данную
программу можно также использовать и при отсутствии внутренней цели, то
есть когда опущен раздел goal.
* Упражнение
3.3. Введите программу "Президенты". Модифицируйте программу
таким образом, чтобы
цель стала внешней, запустите программу на счет и
задайте вопрос:
president(X,republican,S,Yb,Yi,Yo).
На выходе Вы должны получить информацию о всех оставшихся пре-
зидентах (республиканцах).
3.3. Введите программу "Президенты. Модифицируйте программу та-
ким образом, чтобы цель стала внешней, запустите программу на счет и за-
дайте вопрос:
president(X,republican,S,Yb,Yi,Yo).
На выходе Вы должны получить
информацию о всех оставшихся пре-
зидентах (республиканцах).
3.3.3 Использование правил в запросах
В предыдущих примерах программ вы использовали целевые утвер-
ждения, содержащие утверждения, подобные тем, что встречались в про-
грамме. Такие целевые утверждения обеспечивают одну из возможностей
осуществления запросов к программе.
Запросы строятся из предикатов, содержащих условия, которые ог-
раничивают пути поиска желаемых результатов, причем, в случае, когда
какой-либо запрос нужно
повторить несколько раз, разумно предусмотреть
возможность не задавать всякий раз одни и те же условия, что утомительно.
Полезно также для получения ответов из базы данных, не использовать фак-
тов из базы данных.
       Последние три объекта предиката president - целые числа, их доме-
нами являются соответственно birth_year, year_in и year_out. Объявление
доменов в разделе программы domains выглядит достаточно просто:
         birth_year,year_in,year_out = integer
Запятая в этом объявлении служит в качестве разделителя при перечислении
имен доменов одного типа.
       Цель программы на естественном языке можно сформулировать сле-
дующим образом: "Выдать место, год рождения, начальный и конечный год
пребывания у власти всех президентов-демократов." Первая подцель со-
держит свободные переменные Х, S, Yb, Yi и Yo, и значение объекта
democrat. (Заметим, что в данном примере имена переменных являются
ключом для понимания смысла соответствующих объектов, так, например,
Yb - это "year of birth" - год рождения.). Когда программа запускается на
счет, свободным переменным присваиваются соответствующие значения
из второго утверждения. Следующие пять подцелей включают в себя
предикаты write для печати этих значений в разных строках экрана. Данную
программу можно также использовать и при отсутствии внутренней цели, то
есть когда опущен раздел goal.

*     Упражнение
      3.3. Введите программу "Президенты". Модифицируйте программу
таким образом, чтобы цель стала внешней, запустите программу на счет и
задайте вопрос:
      president(X,republican,S,Yb,Yi,Yo).
      На выходе Вы должны получить информацию о всех оставшихся пре-
зидентах (республиканцах).
      3.3. Введите программу "Президенты. Модифицируйте программу та-
ким образом, чтобы цель стала внешней, запустите программу на счет и за-
дайте вопрос:
            president(X,republican,S,Yb,Yi,Yo).
      На выходе Вы должны получить информацию о всех оставшихся пре-
зидентах (республиканцах).


     3.3.3 Использование правил в запросах
      В предыдущих примерах программ вы использовали целевые утвер-
ждения, содержащие утверждения, подобные тем, что встречались в про-
грамме. Такие целевые утверждения обеспечивают одну из возможностей
осуществления запросов к программе.
      Запросы строятся из предикатов, содержащих условия, которые ог-
раничивают пути поиска желаемых результатов, причем, в случае, когда
какой-либо запрос нужно повторить несколько раз, разумно предусмотреть
возможность не задавать всякий раз одни и те же условия, что утомительно.
Полезно также для получения ответов из базы данных, не использовать фак-
тов из базы данных.


                                                                       48