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

    разбиениесписка( Список, Список1, Список2).

3. 10

можетзавладеть( состояние( _, _, _, имеет), [ ] ).

                                % Ничего не надо делать

можетзавладеть( Состояние, [Действие | Действия]):-

    ход( Состояние, Действие, НовоеСостояние),

                                % Первое действие

    можетзавладеть( НовоеСостояние, Действия).

                                % Оставшиеся действия

3. 11

линеаризация( [Голова | Хвост], ЛинейныйСписок ) :-

                                % Линеаризация непустого списка

    линеаризация( Голова, ЛинейнаяГолова ),

    линеаризация( Хвост, ЛинейныйХвост ),

    конк( ЛинейнаяГолова, ЛинейныйХвост,

        ЛинейныйСписок ).

линеаризация( [ ], [ ] ).                  % Линеаризация пустого списка

линеаризация( X, [X] ).

                            % Линеаризация объекта, не являющегося списком

% Замечание: при попытке получить от этой программы более

% одного варианта решения выдается бессмыслица

3. 12

Терм1 = играет_в( джимми, и( футбол, сквош) )

Терм2 = играет_в( сьюзан, и( теннис,

                                    и( баскетбол, волейбол) ) )

3. 13

:- ор( 300, xfx, работает)

:- ор( 200, xfx, в)

:- ор( 100, xfx, нашем)

3. 14

(a)    А = 1 + 0

(b)    В = 1 + 1 + 0

(c)    С = 1 + 1 + 1 + 1 + 0

(d)    D = 1 + 1 + 0 + 1

3. 15

:- ор( 100, xfx, входит_в)

:- ор( 300, fx, конкатенация_списков)

:- ор( 200, xfx, дает)

:- ор( 100, xfx, и)

:- ор( 300, fx, удаление_элемента)

:- ор( 100, xfx, из_списка)                         % Принадлежность к списку

Элемент входит_в [Элемент | Список].

Элемент входит_в [Первый | СписокОстальных] :-

Элемент входит_в СписокОстальных.

% Конкатенация списков

конкатенация_списков [ ] и Список дает Список.

конкатенация_списков [X | L1] и L2 дает [X | L3] :-

    конкатенация_списков L1 и L2 дает L3.

% Удаление элемента из списка

удаление_элемента Элемент иэ_списка

            [Элемент | ОстальныеЭлементы]

            дает ОстальныеЭлементы.

удаление_элемента Элемент из_списка

        [Первый | ОстальныеЭлементы]

        дает [Первый | НовСписОстЭлементов] :-

    удаление_элемента Элемент из_списка

            ОстальныеЭлементы дает НовСписОстЭлементов.

3. 16

max( X, Y, X) :-

    X >= Y.

max( X, Y, Y) :-

    X

3. 17

максспис( [X], X).

                            % Максимум в одноэлементном списке

максспис( [X, Y | Остальные], Мах) :-

                            % В списке есть по крайней мере два элемента?

    максспис( [Y | Остальные], МаксОстальные),

    mах( X, МаксОстальные, Мах).

                            % Мах наибольшее из чисел X и МаксОстальные

3. 18

сумспис( [ ], 0).

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

    сумспис( Остальные, СуммаОстальных),

    Сумма is Первый + СуммаОстальных.

3. 19

упорядоченный ([ ]).

                        % Одноэлементный список является упорядоченным

упорядоченный( [X, Y | Остальные] :-

    X =< Y,

    упорядоченный( [Y | Остальные] ).

3. 20

подсумма( [ ], 0, [ ]).

подсумма( [N | Список], Сумма, [N | Подмн]) :-

                    % N принадлежит подмножеству

    Сумма1 is Сумма - N,

    подсумма( Список, Сумма1, Подмн).

подсумма( [N | Список], Сумма, Подмн) :-

                    % N не принадлежит подмножеству

    подсумма( Список, Сумма, Подмн).

3. 21

между( N1, N2, N1) :-

    N1 =< N2.

между( N1, N2, X) :-

    N1 < N2,

    HoвoeNl is N1 + 1,

    между( HoвoeNl, N2, X).

3. 22

:- ор( 900, fx, если).

:- ор( 800, xfx, то).

:- ор( 700, xfx, иначе).

:- ор( 600, xfx, :=).

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

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

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

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

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

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

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

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

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