Запуск, початок роботи та основи мови Visual Prolog

Принципи, механізми і особливості програмування на мові Пролог. Основні розділи Visual Prolog програм. Приклад створювання проекту. Завдання потрібних властивостей компілятора. Заповнювання розділів предикатів (predicates), речень (clauses) і цілей(goal).

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

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

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

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

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

Міністерство освіти і науки України

Київський національний університет технологій та дизайну

Лабораторна робота

Тема: Запуск, початок роботи та основи мови Visual Prolog

Виконав студент групи ЗІІТ-17

Захаров Дмитро Денисович

Мета роботи: Вивчення візуального середовища розробки Visual Prolog.

Отримання навичок створення проекту і запуску його на виконання. Вивчення основ логічного програмування, основних принципів мови Пролог, включаючи речення, предикати, змінні, цілі та зіставлення.

Теоретичні відомості

Основні принципи, механізми та особливості програмування на мові Пролог

У Пролозі (Prolog- Programming Logic) розв'язок задачі отримується логічним висновком з раніше відомих тверджень. Зазвичай програма на мові Пролог не є послідовністю дій, вона являє собою набір фактів з правилами, які забезпечують отримання висновків на основі цих фактів. Тому Пролог відомий як декларативна мова. Пролог базується на реченнях Хорна, що є підмножиною формальної системи, яку називають логікою предикатів.

Пролог включає механізм виведення, який заснований на зіставленні зразків.

За допомогою підбору відповідей на запити, він отримує відому інформацію, тобто знання Прологу про світ - це обмежений набір фактів (і правил),заданих в програмі.

Однією з найважливіших особливостей Прологу є те, що, на додачу до логічного пошуку відповідей на поставлені питання, він може мати справу з 12 альтернативами і знаходити всі можливі рішення. Замість звичайної роботи від початку програми до її кінця, Пролог може повертатися назад і переглядати більше одного «шляху» при вирішенні всіх складових частин задачі. Програміст на Пролозі описує об'єкти (objects) і відношення (relations), а потім описує правил а (rules), при яких ці відношення є істинні.

Основні розділи Visual Prolog програм

Зазвичай програма на Visual Prolog складається з чотирьох основних програмних розділів.

До них відносяться:

+ розділ clauses ( речень) ;

+ розділ predicates (предикатів) ;

+ розділ domains ( доменів) ;

+ розділ goal ( цілей) .

Розділ речень( clauses ).

В розділ clauses(речень) містяться всі факти і правила, які складають програму.

Факти - це відношення або властивості, про які відомо, що вони мають значення «Істина».

Факт представляє або властивість об'єкта, або відношення між об'єктами.

Факт самодостатній. Для підтвердження факту не потрібно додаткових відомостей, факт може бути використаний як основа для логічного висновку. Факт у Visual Prolog складається з імені відношення і об'єкта або об'єктів, що поміщені в круглі дужки. Факт завершується крапкою «().». Тобто речення на природній мові «John любить футбол» ( John likes football), на синтаксисі Visual Prolog буде виглядати likes (john, football).

Факти, крім відношень, можуть виражати і властивості. Так, наприклад,речення на природній мові«earth is world» (земля це світ) на Visual Prolog, виражаючи ті ж властивості, виглядає наступним чином: earth (world).

Правила - це зв'язані відношення, вони дозволяють логічно виводити одну частину інформації з іншої. Правило приймає значення «Істина, якщо доведено, що заданий набір умовє істинним.

Правило - це властивість чи відношення, яке є достовірним, коли відомо, що ряд інших відношень достовірний. Синтаксично ці відношення розділені комами.

Всі правила мають 2 частини: заголовок і тіло, розділені спеціальним знаком«:-».

Заголовок - це факт, який був би істинним, якщо б були істинними кілька умов.

Це називається висновком або залежним відношенням.

Тіло - це ряд умов, які повинні бути істинними, щоб можна було довести, що заголовок правила істинний. Нижче наведено узагальнений синтаксис правила в Visual Prolog:заголовок:-<підціль>, <підціль>,...,<підціль>.

Тіло правила складається з однієї або більше підцілей.

Підцілі відокремлюються комами, визначаючи кон'юнкцію, а після останньої підцілі правила ставиться крапка.

Кожна підціль виконує виклик іншого предиката Visual Prolog, який може бути істинним або хибним. Після того як програма здійснила цей виклик, Visual Prolog перевіряє істинність викликаного предиката, і якщо він істинний, то робота триває, але вже з наступною підціллю. Якщо ж у процесі такої роботи була досягнута крапка, то все правило вважається істинним, якщо хоч одна з підцілей хибна, то все правило хибне.

predicates

likes (symbol, symbol)

clauses

likes (ellen, tennis).

likes (john, football).

likes (tom, baseball).

likes (eric, swimming).

likes (mark, tennis).

likes (bill, Activity):-likes (tom, Activity).

goal

likes (bill, baseball)

Символ«:-» рівнозначний «якщо»(if). Однак if в Пролозі відрізняється від if,написаного в інших мовах, наприклад в Pascal, де умова, що міститься в операторі if, повинна бути вказана перед тілом оператора, який може бути виконаний. Даний тип оператора відомий як умовний оператор якщо/тоді (if/then). Visual Prolog використовує іншу форму логіки в таких правилах. Висновок щодо істинності заголовка правила Прологу робиться, якщо (після того як) тіло цього правила істинне, тобто правило Прологу відповідає умовній формі тоді/якщо(Then/if). Всі речення для кожного конкретного предиката в розділі clauses повинні розташовуватися разом. Послідовність речень, що описують один предикат,називається процедурою.Правило можна розглядати і як процедуру.

likes (bill, Activity):-likes (tom, Activity).

Ціль bill любить baseball?

В правилі сказано що bill любить теж що і tom, тобто якщо tom любить baseball, то і bill любить baseball, також в розділі речень (clauses), ми бачимо факт що tom любить baseball,

Значить до цілі чи любить bill baseball, відповідь так

Розділ предикатів (predicates). Якщо в розділі clauses програми на Visual Prolog описано будь-який предикат, то він обов'язково повинен бути оголошеним в розділі predicates (предикатів),в іншому випадку Visual Prolog не зрозуміє, про що ви йому «говорите».

В результаті оголошення предиката програміст повідомляє, до яких доменів (типів) належать аргументи цього предиката. Visual Prolog поставляється з великим набором вбудованих предикатів (їх непотрібно оголошувати), а інтерактивне довідкове керівництво надає повний Їх опис. Предикати задають факти і правила. У розділі predicates всі предикати просто перераховуються із зазначенням типів (доменів) їх аргументів. Оголошення предиката починається з імені цього предиката, за яким відкривається кругла дужка«(», після чого йде нуль або більше доменів (типів) аргументів предиката, після кожного домену (типу) аргументу слідує кома, а після останнього типу аргументу закривається дужка «)».

predicates

my_predicate (symbol, integer)

likes (symbol, symbol, integer)

Основні стандартні домен symbol Послідовність символів, що реалізуються як покажчик на вхід в таблиці ідентифікаторів, що зберігає рядки ідентифікаторів. Синтаксис - як для рядків integer Знакове, кількісне, має платформо-залежний розмір Платформи 16 біт (від -32768 до 32767) Платформи 32 біт (від -2147483648 до 2147483647)

Розділ цілей(goal). Цей розділ аналогічний тілу правила, тобто містить список підцілей.

Ціль відрізняється від правила наступним:

+за ключовим словом goalне слідує «:-»

+при запуску програми Visual Prolog автоматично виконує ціль.

Це відбувається так, як ніби Visual Prolog викликає goal, запускаючи тим самим програму, яка намагається вирішити тіло правила goal. Якщо всі підцілі в розділі goal істинні, програма завершується успішно. Якщо ж якась підціль з розділу goal хибна, то вважається, що програма завершується не успішно(хоча зовні ніякої різниці в цих випадках немає, програма просто завершить свою роботу). Приклад. Одноразово давши мові Visual Prolog кілька фактів, є можливість задавати питання, що стосуються відносин між ними. Природною мовою можна задати запитання: Does dima like football?(Діма любить футбол?). За правилами Прологу це запитання виглядає наступним чином: likes(dima, football). Отримавши такий запит, Visual Prolog відповість: yes(так), тому що Visual Prolog має факт, який підтверджує, що це так, далі в лабораторній роботі ви це побачите.

Розділ констант (constants). В програмах на Visual Prolog можна оголошувати і використовувати символічні константи. Розділ для оголошення констант позначається ключовим словом constants, за яким слідують самі оголошення, що використовують наступний синтаксис: <Id> =<Макроозначення> де <Id>-ім'я символічної константи, а <макроозначення> - це значення, що присвоюється цій константі. Кожне <макроозначення> завершується символом нового рядка а, отже, в одному рядку може бути тільки один опис константи. Оголошені таким чином константи можуть пізніше використовуватися в програмах. Приклад:

constants

zero = 0

pi = 3.141592653

Перед компіляцією програми Visual Prolog замінить кожну константу на відповідний рядок.

Під час лабораторної роботи було виконано два приклади в яких було практичне навчання виконання логічних операцій за допомогою програмної мови Visual Prolog, в першому прикладі ми навчилися створювати проект з потрібними властивостями, після створення робили налаштування властивостей компілятора, писали програму використовуючи розділи

Предикатів (predicates), речень (clauses) з набором фактів та правил, та цілей( goal)

За завдання взяв 2 варіант

Рис. 1

Створення проекту

Для створення нового проекту потрібно обрати деякі опції компілятора Visual Prolog. Для цього необхідно виконати наступні дії:

1. Запустити середовище візуальної розробки Visual Prolog (Пуск > Програми > Visual Prolog 5.2 > Vip32). При першому запуску на екрані з'явиться вікно, показане на рис. 2.

Також з'явиться повідомлення, що за замовчуванням створено ініціалізаційний файл для Visual Prolog VDE(Visual Develop Environment).

2. Створити новий проект. Для цього необхідно вибрати команду Project >New Project, в результата активізується діалогове вікно Аррlication Expert (рис. 3).

3. Задати базовий каталог та ім'я проекту. В полі Ргоjесt Name слід задати ім'я lab1ex3.Після натиснення, в полі Nаmе оf. VРR File повинно з'явитися: lab1ex3.vpr.

Рис. 2

Також необхідно встановити прапорець для Мulltiprogrammer Моdе і натиснути лівою кнопкою миші в полі Nаmе оf.РRJ File. Після чого там з'явиться ім'я файлу проекту lab1ex3.prj (рис. 3).

Рис. 3

Визначити мету проекту. На вкладці Таrget рекомендується вибрати параметри, зазначені на рис. 4 і натиснути кнопку Сrеаtе для того, щоб створити файли проекту.

Рис 4.

Встановити необхідні параметри компілятора для створеного проекту.

Для активізації діалогового вікна СоmрilеrОрtions необхідно вибрати 6 команду Орtions >Ргоject >Соmрiler Орtions.

Далі перейти кладку Wаrnings. Для встановлення необхідних параметрів потрібно виконати наступні дії: +встановити перемикач Nondeterm. Це потрібно для того, щоб компілятор Visual Рrоlоg

Приймав за замовчуванням, що всі визначені користувачем предикати -недетерміновані (можуть мати більше одного рішення); +зняти прапорці з наступних параметрів: Not Quoted Symbols, Strong Type Conversion Check і Check Type of Predicates. Ці дії дозволять зменшити кількість попереджень від компілятора; + натиснути кнопку ОК, щоб зберегти налаштування опцій компілятора. В результаті виконання наведених вище дій,діалогове вікно Соmрilег Орtions буде мати наведений на рис. 5 вигляд.

Рис 5.

Після створення проекту заходимо в файл lab1ex3.pro та починаємо заповнювати розділи предикатів (predicates), речень (clauses) та цілей(goal):

predicates

katalog_auto (symbol, symbol)

Рис. 6

clauses

katalog_auto ("Ford", "C-Max").

katalog_auto ("Volkswagen", "Passat").

katalog_auto ("Opel", "Cadet").

katalog_auto ("Lada", "Kalina").

katalog_auto ("Toyota", "Corolla").

katalog_auto ("Volkswagen", "Touran").

goal

katalog_auto (“Volkswagen”, Model)

Цими записами ми задали факти katalog_auto назва автомобіля(Ford), та модел (C-Max), для всіх автомобілів, задали предикат katalog_auto з значення доменів символ, символ (symbol, symbol), за ціль ми взяли прохання за вивід усіх автомобілів Volkswagen які є в каталозі. Переходимо в вкладку Project-Test Goal та чекаємо на перевірку помилок та виконання логічних операцій.

Вікно вивело що було знайдено 2 співпадіння, наче все працює. Далі виконали аналогічно другий приклад для створення каталогу приміських поїздів. Початок був той самий створили новий проект Project- New project написали імя lab1ex4.pro

Рис. 7

Рис. 8

Після натиснення, в полі Nаmе оf. VРR File повинно з'явитися: lab1ex4.vpr.

Також необхідно встановити прапорець для Мulltiprogrammer Моdе і натиснути лівою кнопкою миші в полі Nаmе оf.РRJ File. Після чого там з'явиться ім'я файлу проекту lab1ex4.prj в розділі Target вибрати тіж самі показники, після створення проекту, виконуємо налаштування компілятора Option- Project- Compiler option так само як в минулому прикладі починаємо заповнювати розділи(predicates, clauses, goal)

predicates

train_city (symbol, symbol,symbol)

clauses

train_city ("Kiev", "Yagotin","15 grn").

train_city ("Kiev", "Berezan'","12 grn").

train_city ("Darnitsya", "Korji","10 grn").

train_city ("Barishivka", "Kiev", "10 grn").

train_city ("Darnitsya", "Nijun", "11 grn").

train_city ("Jutomir", "Darnitsya", "22 grn").

goal

train_city (“city1, “Korji”, “10grn”)

в цьому прикладі ми заповнили факти назви станцій 1 та станцій 2 та ціна маршруту записали значення доменів предикату train_city(symbol, symbol, symbol), за ціль взяли прохання для показу результатів Коржі та вартість 10 грн чи є такі потяги так було знайдено що за 10 грн з Коржів є потяг до Дарниці для відпрацювання правила було виконано додаткове завдання

predicates

likes(symbol,symbol)

clauses

likes(dima, football).

likes(serj, basketball).

likes(vlad, football).

likes(sasha, swimming).

likes(alexander, tennis).

likes(diana,same)-:likes(serj, basketball)

goal

likes(diana, basketball).

Ми записали факти що Дима любить футбол, що Сергій любить баскетбол, що влад любить футбол, що Саша любить плавання, що Олександр любить теніс та записала правило в якому сказано що Диана любить те що любить Сергій, а Сергій любить баскетбол, ціль була чи любить Діана баскетбол, завдяки логічному розрахунку отримали висновок так.

пролог програмування компілятор предикат

Висновок

Під час лабораторної роботи ми ознайомилися з програмою Visual Prolog, навчилися створювати проекти, задавати потрібні властивості компілятора, ознайомилися з розділами predicates-предикатів , clauses-речень в яких ми навчилися записувати факти та правила та розділ цілей goal, побудували не складні програми для відображення каталогу автомобілів та створили вартість проїзду в приміських поїздах

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


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

  • Механізм функціонування Visual Prolog, яка має предикати для безпосереднього доступу до операційної системи. Розгляд предикатів, які дозволяють звертатися до ОС, предикатів побітової обробки чисел та підтримки низькорівневого режиму роботи з пам'яттю.

    контрольная работа [21,4 K], добавлен 02.07.2011

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

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

  • Огляд переваг та недоліків мови Пролог, історія її створення. Числення предикатів як математична основа її функціонування. Порівняльна характеристика середовищ програмування Prolog. Алгоритми розв’язування математичних задач за допомогою цієї мови.

    курсовая работа [504,5 K], добавлен 23.12.2014

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

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

  • Характеристика мови програмування VBA (Visual Basic for Application): можливості й засоби. Використання редактора Visual Basic. Створення та виконання VBA-програм. Типи даних, змінні й константи, операції й вирази. Керуючі оператори, процедури й функції.

    реферат [29,9 K], добавлен 28.06.2011

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

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

  • Розробка таблиці для збереження даних у текстовому файлі про фільми в середовищі програмування Visual Studio C++ та їх сортування за країною виробництва. Реалізація таблиці за допомогою компонента dataGridView. Опис і контрольний приклад роботи програми.

    курсовая работа [1,4 M], добавлен 02.11.2016

  • Теоретичні основи мови програмування C++ та середовища розробки Microsoft Visual C++, яка дозволяє створювати як маленькі программи і утиліти для персонального використання, так і корпоративні системи, що працюють з базами даних на різних плтаформах.

    реферат [26,5 K], добавлен 01.04.2010

  • Галузі застосування та принцип роботи мови програмування "Пролог". Керування процесом пошуку рішень, типи даних та використання списків. Рекурсивні процедури та цикли за допомогою пошуку з поверненням. Виконання арифметичних та логічних операцій.

    курс лекций [99,7 K], добавлен 06.07.2011

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

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

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