Читаем Prolog полностью

если Вел1 > Вел2 то Перем := Вел3

                                иначе ЧтоУгодно :-

    Вел1 > Вел2,

    Перем = Вел3.

если Вел1 > Вел2 то ЧтоУгодно

                                иначе Перем := Вел4 :-

    Вел1 =< Вел2,

    Перем = Вел4.

Глава 4

4. 1

(a)    ?-  семья(членсемьи( _, Фамилия, _, _ ), _, [ ]).

(b)    ?-  ребенок( членсемьи( Имя, Фамилия, _,

                                работает( _, _ ) )).

(c)    семья(членсемьи( _, Фамилия, _, неработает),

                    членсемьи( _, _, _, работает( _, _ ) ),_ ).

(d)    ?-  семья( Муж, Жена, Дети),

            датарождения( Муж, дата( _, _, Год1) ),

            датарождения( Жена, дата( _, _, Год2) ),

            ( Год1 - Год2 >= 15;

              Год2 - Год1 >= 15 ),

            принадлежит( Ребенок, Дети).

4. 2

близнецы( Ребенок1, Ребенок2) :-

    семья( _, _, Дети),

    удалить( Ребенок1, Дети, ДругиеДети),

                            % Выделить первого ребенка

    принадлежит( Ребенок2, ДругиеДети),

    принадлежит( Ребенок1, Дата),

    принадлежит( Ребенок2, Дата).

4. 3

n_элемент( 1, [X | L], X).

                            % X - первый элемент списка [X | L]

n_элемент( N, [Y | L], X) :-

                            % X - n-й элемент [Y | L]

N1 is N - 1,

n_элемент( N1, L, X).

4. 4

Входная цепочка укорачивается на каждом неспонтанном цикле, а укорачиваться бесконечно она не может.

4. 5

допускается( S, [ ], _ ) :-

    конечное( S).

допускается( S, [X | Остальные], Макс_переходов) :-

    Макс_переходов > 0,

    переход( S, X, S1),

    НовыйМакс is Макс_переходов - 1,

    допускается( S1, Остальные, НовыйМакс).

допускается( S, Цепочка, Макс_переходов) :-

    Макс_переходов > 0,

    спонтанный( S, S1),

    НовыйМакс is Макс_переходов - 1,

    допускается( S1, Цепочка, НовыйМакс).

4. 7

(а)    ходконя( X/Y, X1/Y1) :-

                        % Ход коня с поля X/Y на поле X1/Y1

            ( dxy( DX, DY);

                        % Расстояния по направлениям X и Y

              dxy( DY, DX) ),

                        % Или расстояния по направлениям Y и X

            X1 is X + DX,

                        % X1 расположен в пределах шахматной доски

            надоске( X1),

            Y1 is Y + DY,

                        % Y1 расположен в пределах шахматной доски

            надоске( Y1).

        dxy( 2, 1).             % 2 поля вправо, 1 поле вперед

        dxy( 2, -1).            % 2 поля вправо, 1 поле назад

        dxy( -2, 1).            % 2 поля влево, 1 поле вперед

        dxy( -2, -1).           % 2 поля влево, 1 поле назад

        надоске( Коорд) :-

                            % Координаты в пределах доски

            0 < Коорд,

            Коорд < 9.

(b)    путьконя( [ Поле]).         % Конь стоит на поле Поле

            путьконя( [S1, S2 | Остальные] ) :-

            ходконя( S1, S2),

            путьконя( [S2 | Остальные]).

(c)    ?-  путьконя( [2/1, R, 5/4, S, Х/8] ).

Глава 5

5. 1

(a)    X = 1;

        X = 2

(b)    X = 1;

        Y = 1;

        X = 1;

        Y = 2;

        X = 2;

        Y = 1;

        X = 2

        Y = 2;

(c)    X = 1;

        Y = 1;

        X = 1;

        Y = 2;

5. 2

класс( Число, положительное) :-

    Число > 0,  !.

класс( 0, нуль) :-  !.

класс( Число, отрицательное).

5. 3

разбить( [ ], [ ], [ ]).

разбить( [X | L], [X | L1], L2) :-

    X >= 0,  !,

    разбить( L, L1, L2).

разбить( [X | L], L1, [X | L2]) .

    разбить( L, L1, L2).

5. 4

принадлежит( Некто, Кандидаты),

        not принадлежит( Некто, Исключенные)

5. 5

разность( [ ], _, [ ]).

разность( [X | L1], L2, L):-

    принадлежит( X, L2),  !,

    разность( L1, L2, L).

разность( [X | L1], L2, [X | L]) :-

    разность( L1, L2, L).

5. 6

унифицируемые( [ ], _, [ ]).

унифицируемые( [Первый | Остальные], Терм, Список) : -

    not( Первый = Терм),  !,

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных