5.2. Приклади, що використовують відсікання

5.2. Приклади, що використовують відсікання

5.2.1. Обчислення максимуму

Процедуру знаходження найбільшого із двох чисел можна запрограмувати у вигляді відношення

де Мах = X, якщо X більше або дорівнює Y, і Мах є Y, якщо X менше Y. Це відповідає двом таким реченням:

mах(X, Y, X) :- X >= Y.

Ці правила взаємно виключають. Якщо виконується перше, друге обов'язково зазнає невдачі. Якщо невдачу зазнає перше, друге обов'язково має здійснитися. Тому можливе більш економне формулювання, що використовує поняття "інакше":

якщо X? Y, то Мах = X,

На Пролозі це записується за допомогою відсікання:

mах(X, Y, X) :- X >= Y, !.

Подібні розділи з інших книг

5.12.5 Приклади

5.12.5 Приклади Програма на малюнку 5.18 ілюструє штучне використання каналів. Процес створює канал і входить у нескінченний цикл, записуючи в канал рядок символів "hello" і зчитуючи його з каналу. Ядру не потрібно не знати про те, що процес, що веде запис у канал,

РОЗДІЛ 4. ПОВЕРНЕННЯ І ВІДСІЧЕННЯ

РОЗДІЛ 4. ПОВЕРНЕННЯ І ВІДСІЧЕННЯ Давайте підсумуємо всю інформацію, яку ми почерпнули в гол. 1 і 2 у тому, що може статися з цільовим твердженням (целлю).1. Може бути спроба довести узгодженість цільового затвердження з базою даних. У процесі доказу

4.3.2. Комбінація «відсікання-fail»

4.3.2. Комбінація «відсікання-fail» У другому з наведених вище випадків застосування відсікання використовується в кон'юнкції з вбудованим предикатом fail – ще одним вбудованим предикатом, подібним до not. Предикат fail не має аргументів, це означає, що виконання цільового

Тепер скористаємося чотирма щойно написаними програмами. Створимочергу і помістимо в неї три повідомлення:solaris % msgcreate /tmp/no/such/fileftok error for pathname "tmp/no/such/file" and id 0: No such file or directorysolaris % touch /trap/test1solaris % msgcreate /tmp /test1solaris % msgsnd /tmp/test1 1 100solaris % msgsnd /tmp/test1 2 200solaris % msgsnd /tmp/test1 3

Приклади Тепер ми продемонструємо роботу п'яти наведених вище програм і досліджуємо деякі властивості семафорів System V: solaris % touch /tmp/richsolaris % semcreate –e /tmp/rich ] = 1semval[1] = 2semval[2] = 3Спочатку ми створили файл з ім'ям /tmp/rich, який

15.7. Приклади

15.7. Приклади У цьому розділі ми наведемо приклади використання п'яти щойно описаних

12.18 Приклади

12.18 Приклади Деякі програми nslookup дозволяють розглянути повідомлення більш детально. Нижче наводиться результат запуску nslookup на хості Єльського університету та вказується виведення детальної налагоджувальної інформації за допомогою команди set d2. Запит вимагав

Системи, що використовують сертифікати, та PKI

Системи, що використовують сертифікати, та PKI Результатом зусиль технічних фахівців з підвищення безпеки Інтернету стала розробка групи протоколів безпеки, таких як S/MIME, TLS та IPsec. Всі ці протоколи використовують криптографію з відкритими ключами для

Системи, що використовують сертифікати, та PMI

Системи, що використовують сертифікати, та PMI Багато систем використовують сертифікати відкритих ключів для прийняття рішень щодо управління доступом, що базується на ідентифікації. Такі рішення ухвалюються лише після того, як користувач доведе, що має доступ до секретного

Операції, що використовують значення дати та часу

Операції, що використовують значення дати та часу Використання арифметичних операцій у маніпулюванні даними, обчисленнях та у відносинах між двома датами були раніше розглянуті в розд. "Інтервал часу" цього розділу. Можливість віднімання значення раніше

Відсікання ExcludeClipRect Функція ExcludeClipRect створює нову область відсікання, яка складається з існуючої області за вирахуванням вказаного прямокутника. int ExcludeClipRect (HDC hdc, // дескриптор контексту пристрою int nLeftRect, // x-координата верхнього лівого кута прямокутника int nTopRect, //

Версії UNIX, які використовують мікроядро

Версії UNIX, що використовують мікроядро Ідея мікроядра полягає у зведенні до мінімуму функцій, що виконуються ядром операційної системи, і, відповідно, базових послуг. При цьому основні компоненти операційної системи є модулями, що працюють на

Входи, що ефективно використовують простір

Входи, що ефективно використовують простір Якщо ви не хочете занадто віддалятися від своєї вихідної точки на поверхні або просто бажаєте ефективніше використовувати простір, створіть спіральні сходи. Найтісніші спіральні сходи займають