Чтение онлайн

на главную - закладки

Жанры

Неизвестно

Шрифт:

3. 17. Определите предикат

максспис( Список, Мах)

так, чтобы Мах равнялось наибольшему из чисел, входящих в Список.

Посмотреть ответ

3. 18. Определите предикат

сумспис( Список, Сумма)

так, чтобы Сумма равнялось сумме чисел, входящих в Список.

Посмотреть ответ

3. 19. Определите предикат

упорядоченный( Список)

который

принимает значение истина, если Список представляет собой упорядоченный список чисел. Например: упорядоченный [1, 5, 6, 6, 9, 12] ).

Посмотреть ответ

3. 20. Определите предикат

подсумма( Множ, Сумма, ПодМнож)

где Множ это список чисел, Подмнож подмножество этих чисел, а сумма чисел из ПодМнож равна Сумма. Например:

?- подсумма( [1, 2. 5. 3. 2], 5, ПМ).

ПМ = [1, 2, 2];

ПМ = [2, 3];

ПМ = [5];

. . .

Посмотреть ответ

3. 21. Определите процедуру

между( Nl, N2, X)

которая, с помощью перебора, порождает все целые числа X, отвечающие условию Nl <=X <=N2.

Посмотреть ответ

3. 22. Определите операторы 'если', 'то', 'иначе' и ':=" таким образом, чтобы следующее выражение стало правильным термом:

если Х > Y то Z := Х иначе Z := Y

Выберите приоритеты так, чтобы 'если' стал главным функтором. Затем определите отношение 'если' так, чтобы оно стало как бы маленьким интерпретатором выражений типа 'если-то-иначе'. Например, такого

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

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

где Вел1, Вел2, Вел3 и Вел4– числовые величины (или переменные, конкретизированные числами), а Перем– переменная. Смысл отношения 'если' таков: если значение Вел1 больше значения Вел2, тогда Перем конкретизируется значением Вел3, в противном случае - значением Вел4. Приведем пример использования такого интерпретатора:

?- Х = 2, Y = 3,

Вел2 is 2*X,

Вел4 is 4*X,

Если Y>Вел2 то Z:=Y иначе Z:=Вел4.

Если Z > 5 то W := 1 иначе W :=0.

Х = 2

Y = 3

Z = 8

W = 1

Вел2 = 4

Вел4 = 8

Посмотреть ответ

Резюме

Список - часто используемая структура. Он либо пуст, либо состоит из головы и хвоста, который в свою очередь также является списком. Для списков в Прологе имеется специальная нотация.

В данной главе рассмотрены следующие операции над списками: принадлежность к списку, конкатенация, добавление элемента, удаление элемента, удаление подсписка.

Операторная запись позволяет программисту приспособить синтаксис программ к своим конкретным нуждам. С помощью операторов можно значительно повысить наглядность программ.

Новые операторы определяются с помощью директивы ор, в которой указываются его имя, тип и приоритет.

Как правило, с оператором не связывается никакой операции; оператор это просто синтаксическое удобство, обеспечивающее альтернативный способ записи термов.

Арифметические операции выполняются с помощью встроенных процедур. Вычисление арифметических выражений запускается процедурой is, а также предикатами сравнения <, =< и т.д.

Понятия, введенные в данной главе:

список, голова списка, хвост списка

списковая нотация

операторы, операторная нотация

инфиксные, префиксные и постфиксные

операторы

приоритет операторов

арифметические встроенные процедуры

Назад | Содержание | Вперёд

Назад | Содержание | Вперёд

Глава 4

ИСПОЛЬЗОВАНИЕ СТРУКТУР:

ПРИМЕРЫ

Структуры данных вместе с сопоставлением, автоматическими возвратами и арифметикой представляют собой мощный инструмент программирования. В этой главе мы расширим навыки использования этого инструмента при помощи следующих учебных программных примеров: получение структурированной информации из базы данных, моделирование недетерминированного автомата, планирование маршрута поездки и решение задачи о расстановке восьми ферзей на шахматной доске. Мы увидим также, как в Прологе реализуется принцип абстракции данных.

Поделиться:
Популярные книги

Русская мафия 1988-2007

Карышев Валерий Михайлович
Документальная литература:
публицистика
6.25
рейтинг книги
Русская мафия 1988-2007

На кресах всходних

Попов Михаил Михайлович
Проза:
современная проза
роман
5.00
рейтинг книги
На кресах всходних

Индийская философия (Том 1)

Радхакришнан Сарвепалли
Научно-образовательная:
философия
5.00
рейтинг книги
Индийская философия (Том 1)

Большая охота на акул

Томпсон Хантер С.
Альтернатива
Проза:
контркультура
5.00
рейтинг книги
Большая охота на акул

Система Возвышения. (цикл 1-8) - Николай Раздоров

Раздоров Николай
Система Возвышения
Фантастика:
боевая фантастика
4.65
рейтинг книги
Система Возвышения. (цикл 1-8) - Николай Раздоров

Туман. Авель Санчес; Тиран Бандерас; Салакаин отважный. Вечера в Буэн-Ретиро

де Унамуно Мигель
141. Библиотека всемирной литературы
Проза:
классическая проза
5.00
рейтинг книги
Туман. Авель Санчес; Тиран Бандерас; Салакаин отважный. Вечера в Буэн-Ретиро

Весь Гамильтон Эдмонд в одном томе

Гамильтон Эдмонд Мур
Абсолют
Фантастика:
боевая фантастика
ужасы и мистика
космическая фантастика
5.00
рейтинг книги
Весь Гамильтон Эдмонд в одном томе

Благие намерения

Лукина Любовь Александровна
Фантастика:
фэнтези
научная фантастика
7.50
рейтинг книги
Благие намерения

Армагеддон. Омнибус

Грин Джонатан
Армагеддон
Фантастика:
эпическая фантастика
5.00
рейтинг книги
Армагеддон. Омнибус

#9 Печать пожирателя

Соломенный Илья
9. Пожиратель
Фантастика:
аниме
сказочная фантастика
попаданцы
6.00
рейтинг книги
#9 Печать пожирателя

По ходу пьесы. История одного пистолета. Это его дело. Внезапная смерть игрока. Идея в семь миллионов

Эдигей Ежи
Детективы:
полицейские детективы
5.00
рейтинг книги
По ходу пьесы. История одного пистолета. Это его дело. Внезапная смерть игрока. Идея в семь миллионов

Франкенштейн: Антология

Шелли Мэри
1. Лучшее
Фантастика:
социально-философская фантастика
научная фантастика
ужасы и мистика
7.43
рейтинг книги
Франкенштейн: Антология

Цикл "Идеальный мир для Лекаря". Компиляция. Книги 1-30

Сапфир Олег
Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Цикл Идеальный мир для Лекаря. Компиляция. Книги 1-30

Аврора Горелика (сборник)

Аксенов Василий Павлович
Поэзия:
драматургия
6.25
рейтинг книги
Аврора Горелика (сборник)