Логическое программирование на примере языка Prolog

Знакомство с основами логического программирования на примере языка Prolog. Синтаксис его основных команд. Генеалогическое дерево с использованием предикатов. Хорновская логическая программа. Основные синтаксические объекты: атомы, константы и переменные.

Рубрика Программирование, компьютеры и кибернетика
Вид практическая работа
Язык русский
Дата добавления 20.11.2015
Размер файла 832,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)

Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)

Практическая работа №7

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Выполнил:

Студент гр. 714

Ганиев И Н.

Принял:

доцент, к.н.

А.С. Романов

Томск, 2015

1. Введение

Знакомство с основами логического программирования на примере языка Prolog.

2. Задание

-Изучить теоретический материал о языках логического программирования.

-Изучить синтаксис основных команд языка Prolog.

-Задать генеалогическое дерево вида: я, брат, сестра, отец, мать, бабушка(мать мамы), дедушка (отец мамы), бабушка (мать отца), дедушка (отец отца), жена брата, племянник (сын брата или сестры), племянница (дочь брата или сестры), дядя (со стороны отца), тетя (со стороны отца), дядя (со стороны матери), дядя (со стороны матери), дочь дяди со стороны матери, дочь дяди со стороны отца, прадед (отец деда со стороны матери), прабабушка (мать деда со стороны матери), прадед (отец бабушки со стороны матери), прабабушка (мать бабушки со стороны матери).

-Нарисовать полученное дерево.

-Данное дерево задать только с использованием предикатов - фактов «мать», «отец».

- Привести определение предикатов: родитель, потомок, предок, дядя (тетя), племянник, племянница, дед, родной(ая) брат(сестра), двоюродный(ая) брат(сестра), супруг.

3. Теоретический материал

Хорновская логическая программа состоит из набора хорновских фраз, которые в языке Пролог называются фактами и правилами.

Фактом называется формула вида

Правилом называется формула вида

Запросом к логической программе называется формула вида

Основные синтаксические объекты: атомы, константы и переменные. Константы состоят из атомов и чисел. Числа - целые и вещественные. Атомы - обозначения для других постоянных объектов предметной области. Атомы могут изображаться тремя различными способами:

- Последовательностью латинских букв, цифр, начинающейся со строчной буквы;

- Последовательностью, состоящей из специальных символов <…>|==>|…|&;

Рисунок 1. Генеалогическое дерево

логический программирование синтаксис предикат

- Любыми последовательностями символов, заключенными в апострофы (в т.ч. и русскими буквами).

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

4. Ход работы

Генеалогическое дерево:

:- discontiguous мать/2.

:- discontiguous отец/2.

мужчина(мухаммед).

мужчина(нодиршо).

мужчина(комилджон).

мужчина(рабони).

мужчина(асатулло).

мужчина(гани).

мужчина(назриддин).

мужчина(нурулло).

мужчина(илхомиддин).

мужчина(кудрат).

мужчина(рухулло).

/**Древо*/

мать(сумая,гани).

отец(мухаммед,гани).

мать(кимиё,сурайё).

отец(нодиршо, сурайё).

мать(иффет,асатулло).

отец(комилджон,астулло).

мать(салима1,озода).

отец(рабони,озода).

мать(салима,илхомиддин).

мать(салима,анора).

отец(назриддин,илхомиддин).

отец(назриддин,анора).

мать(озода,салима).

мать(озода,кудрат).

отец(асатулло, салима).

отец(асатулло, кудрат).

мать(хадиса,рухулло).

отец(нурулло,рухулло).

мать(салима,илхомиддин).

мать(салима,анора).

отец(назриддин,илхомиддин).

отец(назриддин,анора).

родитель(Z,C):-мать(Z,C);отец(Z,C).

потомок(X,Y):-(отец(Y,X);мать(Y,X)).

потомок(X,Y):-(отец(Z,X);мать(Z,X)),потомок(Z,Y).

предок(X,Y):-(отец(X,Y);мать(X,Y)).

предок(X,Y):-(отец(X,Z);мать(X,Z)),предок(Z,Y).

дядя(Z,C):-((отец(Y,Z),отец(Y,X),отец(X,C),Z\=X);(отец(Y,Z),отец(Y,X),мать(X,C),Z\=X)),мужчина(Z).

тетя(Z,C):-((отец(Y,Z),отец(Y,X),отец(X,C),Z\=X);(отец(Y,Z),отец(Y,X),мать(X,C),Z\=X)),not(мужчина(Z)).

племянник(C,Z):-((отец(Y,Z),отец(Y,X),отец(X,C),Z\=X);(отец(Y,Z),отец(Y,X),мать(X,C),Z\=X)),мужчина(C).

племянница(C,Z):-((отец(Y,Z),отец(Y,X),отец(X,C),Z\=X);(отец(Y,Z),отец(Y,X),мать(X,C),Z\=X)),not(мужчина(C)).

дед(C,Z):-отец(C,Y),(отец(Y,Z);мать(Y,Z)).

родн_сестра(C,Z):-((отец(X,C),отец(X,Z)),(мать(Y,C),мать(Y,Z))),C\=Z,Z\=C,мужчина(C).

родн_сестра(C,Z):-((отец(X,C),отец(X,Z)),(мать(Y,C),мать(Y,Z))),C\=Z,Z\=C,not(мужчина(C)).

дв_брат(K,C):-((отец(Y,Z),отец(Y,X),(отец(X,K);мать(X,K)),(отец(Z,C);мать(Z,C)),Z\=X)),мужчина(K).

дв_сестра(K,C):-((отец(Y,Z),отец(Y,X),(отец(X,K);мать(X,K)),(отец(Z,C);мать(Z,C)),Z\=X)),not(мужчина(K)).

супруг(Z,C):-отец(C,K),мать(Z,K).

Тестируем программу

Заключение

Были изучены основы логического программирования на языке Prolog.

Размещено на Allbest.ru


Подобные документы

  • Основы языка Visual Prolog. Введение в логическое программирование. Особенности составления прологов, синтаксис логики предикатов. Программы на Visual Prolog. Унификация и поиск с возвратом. Использование нескольких значений как единого целого.

    лекция [120,5 K], добавлен 28.05.2010

  • Разработка программы для поиска пути в лабиринте с возможностью задания входа и выхода, наглядное представление решений. Использование языка логического программирования Prolog. Данные и методы решения. Пользовательский интерфейс, листинг программы.

    реферат [14,3 K], добавлен 15.10.2012

  • Реализация экспертных систем любой сложности, решение любых головоломок и шарад с помощью языка логического программирования Prolog. Основные понятия в языке Prolog. Правила логического вывода и запросы. Процедуры логического вывода и принятия решений.

    курсовая работа [19,0 K], добавлен 24.05.2012

  • Общая характеристика и функциональные возможности языка логического программирования Prolog, а также систем SWI-Prolog и Visual Prolog. Формирование базы знаний относительно определения возможности трудоустройства студента и принципы реализации запросов.

    лабораторная работа [1,3 M], добавлен 07.10.2014

  • История возникновения и развития языка Prolog. Рассмотрение императивных и декларативных языков программирования. Элементы экспертной системы: база знаний, механизм вывода и система пользовательского интерфейса. Описание предикатов и предложений.

    дипломная работа [44,0 K], добавлен 11.05.2014

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

    контрольная работа [38,8 K], добавлен 17.05.2011

  • Изучение общей структуры языка программирования Delphi: главные и дополнительные составные части среды программирования. Синтаксис и семантика языка программирования Delphi: алфавит языка, элементарные конструкции, переменные, константы и операторы.

    курсовая работа [738,1 K], добавлен 17.05.2010

  • Базовые основы программы Prolog - языка и системы логического программирования. Работа с текстами и предложениями. Электронный казахско-русско-английский словарь. Дистанционный комплекс обучения государственному языку специалистов технического профиля.

    реферат [45,6 K], добавлен 15.09.2014

  • Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.

    презентация [192,3 K], добавлен 13.06.2014

  • Понятие экспертных систем, их классификация, виды и структура. Построение продукционной модели экспертной системы прогнозирования результатов сессии на основании анализа успеваемости, ее реализация в языке логического программирования Visual Prolog.

    дипломная работа [1,6 M], добавлен 25.01.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.