Программирование на Турбо-Прологе


Программирование на Турбо-Прологе - стр. 20


         Первая команда, Вторая команда,
Счет игры.
         Определить чемпиона.
     10. Создать БД с книжным каталогом:
           Ф.И. автора, Название книги,
Издательство,
Год издания.
     Найти все книги, изданные в издательстве "Наука" после 1990 года.
     11. Создать БД со сведениями о стоимости товаров:
           Наименование товара, Стоимость товара.
           Определить суммарную стоимость указанных в БД товаров,  найти товары с максимальной и минимальной стоимостями.
      5. ОПЕРАЦИИ НА ГРАФАХ
5.1. Представление ориентированных графов в Прологе
     Способ 1.
     Каждая дуга графа записывается в  виде  отдельного  предложения.
Например,
        arca(a,b). arca(b,c).
или (граф с взвешенными дугами)
        arca(s,t,1).  arca(t,v,3). arca(v,u,2).
     Способ 2.
     Граф представляется в виде списка дуг. Например,
        G = [ arca(a,b), arca(b,c), arca(b,d), arca(c,d)]
     или
        G = [ arca(s,t,3), arca(t,v,1), arca(v,u,2), arca(u,t,5), arca(t,u,2)]
     Способ 3.
     Граф представляется  как  один  объект.  Графу соответствует пара
множеств - множество вершин и множество дуг.  Для объединения множеств
в пару будем применять функтор graph, а для записи дуги - arca. Например,
        G = graph([a,b,c,d], [ arca(a,b), arca(b,d),
arca(b,c),
arca(c,d)])
     Всюду, где это возможно,  для  простоты  записи  программы  будем
представлять графы способом 1 или способом 2.
5.2. Операции на графах
     Типичными операциями на графе являются следующие:
     - найти путь между двумя заданными вершинами графа;
     - найти  подграф,  обладающий  заданными  свойствами  ( например,
построить остовное дерево графа).
     5.2.1. Поиск пути в графе
     Определим отношение
        path(A,Z,P),
где P - ациклический путь между вершинами A и Z в графе  G,  представленном следующими дугами:



- Начало -  - Назад -  - Вперед -



Книжный магазин