русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ПРИМЕНЕНИЕ СПИСКОВ В ПРОГРАММЕ


Дата добавления: 2014-09-29; просмотров: 613; Нарушение авторских прав


Для того чтобы использовать в программе список, необходимо описать предикат списка. Ниже приведены примеры таких предикатов:

num([1,2,3,6,9,3,4])

time(["YESTERDAY","TODAY","TOMORROW"])

В этих выражениях num и time представляют предикаты списков. Предикатам списков обычно присваиваются имена, которые характеризуют либо тип элемента (num), либо сами данные (time).

Введение списков в программу с необходимостью отражается на трех ее разделах. Домен списка должен быть описан в разделе domains, а работающий со списком предикат — в разделе predicates. Наконец, нужно ввести сам список; то есть, другими словами, его нужно задать где-то в программе: либо в разделе clauses, либо в разделе goal.

Покажем, как можно создавать в программе списки и как их использовать.

animals(["monkey","piton","lion","white eagle"])

Если этот список необходимо использовать в программе, то следует описать домен элемента списка; ему логично присвоить имя подобное name_animals.

Отличительной особенностью описания списка является наличие звездочки (*) после имени домена элементов. Так запись

name_animals *

следует понимать как список, состоящий из элементов домена name_animals.

Описание в разделе domains, следовательно, может выглядеть либо как

animals_list = name_animals *

name_animals = symbol

либо как

animals_list = symbol *

Домен animals_list является доменом списка элементов типа symbol.

В разделе описания предикатов predicates требуется присутствия имени предиката, а за ним заключенного в круглые скобки имени домена.

animals(animals_list)

Как видим, описание предиката списка ни в чем не отличается от описания обычного предиката. Сам список присутствует в разделе утверждений

clauses

animals(["monkey","piton","lion","white eagle"]).



Пример использования списков приведен в программе 6.1 «Списки», в которую дополнительно включены два списка из целых чисел (домен integer*) и предикат num.

/* Программа 6.1 «Списки». Назначение: */

/* демонстрация работы со списками. */

domains

 

animals_list = name_animals *

name_animals = symbol

 

predicates

 

animals(animals_list)

num(integer *)

 

goal

L=[6,7,8],write(L),nl,

animals(L1),write(L1),nl,

num(L2),write(L2).

 

clauses

 

animals(["monkey","piton","lion","white eagle"]).



 

num[1,2,3,4]).

/* Конец программы */

Упражнение 6.1.

Адресуйте программе следующие внешние запросы:

animals(All).

animals([_,_,B,_]).

animals([B1,B2,_,_]).

num(All).

num([F,S,T,A]).

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

Заметим, что свободная переменная All представляет весь список в целом. Он рассматривается при этом как некое целое, элементы играют роль частей этого целого.

Что касается второй цели, animals([_,_,B,_]), то процесс сопоставления начинается с первого элемента. Первые три переменные в целевом утверждении являются анонимными,переменной B присваивается значение lion.

Третья цель, animals([B1,B2,_,_]), запрашивает первые два элемента списка. На выходе можно будет увидеть B1=monkey, B2=piton, т.е. значения первого и второго элементов списка.



<== предыдущая лекция | следующая лекция ==>
ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ СПИСКОВ | МЕТОД РАЗДЕЛЕНИЯ СПИСКА НА ГОЛОВУ И ХВОСТ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.528 сек.