5.2. Примеры, использующие отсечение
5.2. Примеры, использующие отсечение
5.2.1. Вычисление максимума
Процедуру нахождения наибольшего из двух чисел можно запрограммировать в виде отношения
mах( X, Y, Мах)
где Мах = X, если X больше или равен Y, и Мах есть Y, если X меньше Y. Это соответствует двум таким предложениям:
mах( X, Y, X) :- X >= Y.
max( X, Y, Y) :- X < Y.
Эти правила являются взаимно исключающими. Если выполняется первое, второе обязательно потерпит неудачу. Если неудачу терпит первое, второе обязательно должно выполниться. Поэтому возможна более экономная формулировка, использующая понятие "иначе":
если X ? Y, то Мах = X,
иначе Мах = Y.
На Прологе это записывается при помощи отсечения:
mах( X, Y, X) :- X >= Y, !.
mах( X, Y, Y).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Входы, эффективно использующие пространство
Входы, эффективно использующие пространство Если вы не хотите слишком удаляться от своей исходной точки на поверхности или просто желаете более эффективно использовать пространство, создайте спиральную лестницу. Самая тесная спиральная лестница занимает
Версии UNIX, использующие микроядро
Версии UNIX, использующие микроядро Идея микроядра заключается в сведении к минимуму функций, выполняемых ядром операционной системы, и, соответственно, предоставляемых базовых услуг. При этом основные компоненты операционной системы являются модулями, работающими на
5.12.5 Примеры
5.12.5 Примеры Программа на Рисунке 5.18 иллюстрирует искусственное использование каналов. Процесс создает канал и входит в бесконечный цикл, записывая в канал строку символов «hello» и считывая ее из канала. Ядру не нужно ни знать о том, что процесс, ведущий запись в канал,
12.18 Примеры
12.18 Примеры Некоторые реализации программы nslookup позволяют рассмотреть сообщения более подробно. Ниже приводится результат запуска nslookup на хосте Йельского университета и указывается вывод детальной отладочной информации с помощью команды set d2.Запрос требовал
B.4. Поставщики услуг Internet, использующие зарезервированные IP-адреса
B.4. Поставщики услуг Internet, использующие зарезервированные IP-адреса Я добавил этот раздел чтобы предупредить вас о туповатых провайдерах (Internet Service Providers), которые назначают IP адреса, отведенные IANA для локальных сетей. Например, Swedish Internet Service Provider и телефонная монополия Telia
ГЛАВА 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 3solaris % semsetvalues /tmp/rich 1 2 3solaris % semgetvalues /tmp/richsemval[0] = 1semval[1] = 2semval[2] = 3Сначала мы создали файл с именем /tmp/rich, который
15.7. Примеры
15.7. Примеры В этом разделе мы приведем примеры использования пяти только что описанных
Примеры
Примеры Книга содержит множество примеров. Все примеры комментируются по мере их приведения, и все же кое-что следует пояснить заранее.Из приведенного выше примера с map видно, что я обычно опускаю директивы #include и игнорирую тот факт, что компоненты STL принадлежат
ПРИМЕРЫ
ПРИМЕРЫ while(n++ < 100) printf(" %d %d ",n, 2*n + 1);while(fargo < 1000){ fargo = fargo + step; step = 2 * step;} В нашем последнем примере в цикле while используется "неопределенное" условие: мы не знаем заранее, сколько раз выполнится тело цикла перед тем, как выражение станет ложным. Во многих наших
Отсечение
Отсечение ExcludeClipRect Функция ExcludeClipRect создает новую область отсечения, которая состоит из существующей области за вычетом указанного прямоугольника. int ExcludeClipRect ( HDC hdc , // дескриптор контекста устройства int nLeftRect , // x -координата верхнего левого угла прямоугольника int nTopRect , //
Операции, использующие значения даты и времени
Операции, использующие значения даты и времени Использование арифметических операций в манипулировании данными, в вычислениях и в отношениях между двумя датами были ранее рассмотрены в разд. "Интервал времени" этой главы. Возможность вычитания значения более ранней
Системы, использующие сертификаты, и PKI
Системы, использующие сертификаты, и PKI Результатом усилий технических специалистов по повышению безопасности Интернета стала разработка группы протоколов безопасности, таких как S/MIME, TLS и IPsec. Все эти протоколы используют криптографию с открытыми ключами для
Системы, использующие сертификаты, и PMI
Системы, использующие сертификаты, и PMI Многие системы используют сертификаты открытых ключей для принятия решений по управлению доступом, основанному на идентификации. Такие решения принимаются только после того, как пользователь докажет, что имеет доступ к секретному