АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Основные конструкции языка Visual PROLOG

Читайте также:
  1. B. Конструкции Макарова (ПМ), калибр 9-мм
  2. B. Основные принципы исследования истории этических учений
  3. Ha eвропейских языках
  4. I. ОСНОВНЫЕ ПОНЯТИЯ (ТЕРМИНЫ) ЭКОЛОГИИ. ЕЕ СИСТЕМНОСТЬ
  5. I. ОСНОВНЫЕ СПОСОБЫ ПЕРЕДВИЖЕНИЯ И ПРЕОДОЛЕНИЯ ПРЕПЯТСТВИЙ
  6. I.3. Основные этапы исторического развития римского права
  7. II Съезд Советов, его основные решения. Первые шаги новой государственной власти в России (октябрь 1917 - первая половина 1918 гг.)
  8. II. ИСЧИСЛЕНИЕ БЕСКОНЕЧНО–МАЛЫХ И ЕГО ОСНОВНЫЕ КАТЕГОРИИ
  9. II. Основные задачи и функции
  10. II. Основные задачи и функции
  11. II. Основные показатели деятельности лечебно-профилактических учреждений
  12. II. Основные проблемы, вызовы и риски. SWOT-анализ Республики Карелия

В структуре программы на Прологе можно выделить три раздела описания и раздел цели (рис.). Раздел domains содержит описания объектов и переменных, называемых доменами, которые бывают следующих типов:

 

domains <описание объектов и переменных> predicates <описание предикатов> сlauses <факты и правила> goa 1 <подцель_1, подцель 2, ………. и т.д.>

 

1) символы (char) - все возможные одиночные символы, заключенные в апострофы: ’a’,’b’,…’З’,’%’,…;

2) целые числа (integer) в пределах от -32768 до 32767;

3) строки (string) – последовательность символов не более 250, например

'' to day '', ’ 123 ’;

4) действительные числа (real) в пределах от ;

5) символьные имена (symbol) – последовательность строчных английских букв (man, ab, cd), цифр и подчеркиваний или последовательность любых символов (не более 250), заключенная в кавычки, например ''лодка'', ''star'', ''Иван да Марья''.

Раздел predicates служит для описания используемых предикатов. В разделе сlauses находятся факты и правила, известные заранее. В разделе goa 1 формируется одна или несколько целей.

Пролог обеспечивает возможность включения в любое место программы комментариев, заключенных между символами /* и */.

Опишем переменные или объекты, называемые доменами и используемые в предикатах. Имя предиката и его аргументы записываются строчными буквами или именами на английском языке. Переменные записываются прописными буквами () или символьными именами (List), начинающиеся с большой буквы.

Составим программу на Прологе (телефонный справочник), описывающие факты (2).

domains vlad,nom_tel = symbol predicates tel(vlad,nom_tel) сlauses tel (''Арбузов'', ''72-41-02''). %факт 1 tel (''Иванов'', ''74-11-93''). %факт 2 tel (''Бабкина'', ''72-41-41''). %факт 3 tel (''Артемов'', ''41-97-44''). %факт 4 tel (''Воржев'', ''77-06-18''). %факт 5 tel (''Гуляев'', ''72-41-73''). %факт 6 tel (''Деев'', ''77-22-19''). %факт 7 tel (''Еремина'', ''72-40-24''). %факт 8

 

Алгоритм решения базируется на известном правиле резолюций. Решение состоит в доказательстве истинности заключения или цели goa 1, которой может быть нахождение:

1) номера (X) телефона Иванова - tel (''Иванов'', Х);

2) владельца (Y) телефона с номером 72-41-41 - tel (Y, ''72-41-41'').

Здесь X,Y – переменные, значения которых требуется определить; ''Иванов'', ''72-41-41'' – константы или заранее заданные значения переменных. Переменные обозначаются прописными буквами.

Опишем алгоритм решения.

Последовательно просматриваются факты и сопоставляются с целью 1. Процедура сопоставления цели с первым фактом выглядит так. Вначале сравниваются предикаты цели и факта 1. Если они имеют одинаковые имена, то сравниваются, то сравниваются соответствующие аргументы. Первым аргументом цели является константа ''Иванов'', а факта 1 – константа ''Арбузов''. Сопоставление считается неуспешным (константы ''Иванов'' и ''Арбузов'' различаются) и осуществляется переход к следующему факту. Успешным будет сопоставление цели 1 и факта 2, поскольку первые аргументы в цели и факте одинаковы. Цель 1 доказана, ответом будет конкретизация Х = 74-11-93.

Для цели 2 успешным будет сопоставление с фактом 4, у которого второй аргумент – константа совпадает с анологичным в цели. В результате переменная Y приобретает значение ''Бабкина''.

Рассмотрим более сложную Пролог-программу, содержащую факт (1), правило (9) и соответственно одноместные предикаты человек (*) и mortal (*) – cмертен (*).

Целью может быть вопрос «Иван смертен?», или mortal (”Иван”)


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)