Портал освітньо-інформаційних послуг «Студентська консультація»

  
Телефон +3 8(066) 185-39-18
Телефон +3 8(093) 202-63-01
 (093) 202-63-01
 studscon@gmail.com
 facebook.com/studcons

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 

  ga('create', 'UA-53007750-1', 'auto');

  ga('send', 'pageview');

 

</script>

Методичні вказівки

Тип роботи: 
Методичні вказівки
К-сть сторінок: 
44
Мова: 
Українська
Оцінка: 

можна зробити декількома способами. При використанні першого варіанта у квадратних дужках записується ім'я файлу (без pl), наприклад,

?- [example1].
У випадку вдалого завершення цієї операції буде видане повідомлення, аналогічне наступному:
% example1 compiled 0.00 sec, 612 bytes
Yes
У противному випадку буде виданий список помилок (ERROR) і/або попереджень (Warning).
Другий спосіб базується на виклику вбудованого предиката consult, якому як аргумент передається ім'я файлу (також без розширення), наприклад:
?- consult(example1).
Розширення pl часто використається для файлів, що містять програми мовою програмування Perl, тому можна зустріти й інші розширення для файлів із програмами на Пролозі. Для завантаження файлів з розширеннями, відмінними від pl, все ім'я файлу варто обов'язково вкласти в апострофи:
?- consult('example2.prolog').
?- ['example2.prolog'].
Обидві ці команди додають факти й правила із зазначеного файлу в базу даних Прологу. Можна завантажувати кілька файлів одночасно. У цьому випадку вони додаються через кому, наприклад,
?- [example1, 'example2.prolog'].
Важливо пам'ятати, що всі запити повинні закінчуватися крапкою. Якщо
ви забудете її поставити, то Пролог виведе символ '|' і буде очікувати подальшого введення. У цьому випадку треба ввести крапку й нажати клавішу Enter:
?- [example1]
| . Yes
 
1.2. Терми та об'єкти
 
Програма мовою Пролог зазвичай описує якусь дійсність. Об'єкти (елементи) описуваного світу представляються за допомогою термів. Терм інтуїтивно означає об'єкт. Існує 4 види термів: атоми, числа, змінні й складні терми. Атоми й числа іноді групують разом і називають найпростішими термами.
Атом - це окремий об'єкт, що вважається елементарним. У Пролозі атом представляється послідовністю літер нижнього й верхнього регістру, цифр та символів підкреслення '_', яка починається з малої літери. Крім того, будь-який набір припустимих символів, вкладений в апострофи, також є атомом. Нарешті, комбінації спеціальних символів + - * = < > : & також є атомами (слід зазначити, що набір цих символів може відрізнятися в різних версіях Прологу).
Приклад
Представлені далі послідовності є коректними атомами:
b, abcXYZ, x_123, efg_hij, оля, слюсар,
'Це також атом Прологу',
+, ::, <---->, ***
Числа в Пролозі бувають цілими (Integer) і дробовими (Float). Синтаксис цілих чисел простий, як це видно з наступних прикладів: 1,
1313, 0, -97. Не всі цілі числа можуть бути представлені в машині, їхній діапазон обмежений інтервалом між деякими мінімальним і максимальним значеннями, які визначаються певною реалізацією Прологу. SWI-Prolog допускає використання цілих чисел у діапазоні від -2147483648 (-231) до
2147483647 (231-1).
Синтаксис дробових чисел також залежить від конкретної реалізації. Ми будемо дотримуватися простих правил, зрозумілих з наступних прикладів: 3.14,
-0.0035, 100.2. При звичайному програмуванні на Пролозі дробові числа використаються рідко. Причина цього в тім, що Пролог - мова, призначена в першу чергу для обробки символьної, а не числової інформації. При символьній обробці часто використовуються цілі числа, потреба в дробових числах невелика. Скрізь, де можна, Пролог намагається привести число до цілого виду.
Змінними в Пролозі є рядки символів, цифр і символу підкреслення, що починаються із великої букви або символу підкреслення:
X, _4711, X_1_2, Результат, _x23, Об'єкт2, _
Останній приклад (єдиний символ підкреслення) є особливим випадком - анонімної змінної (змінної без імені). Анонімна змінна застосовується, коли її значення не використається в програмі. Можливе кількаразове вживання безіменної змінної в одному вираженні застосовується для того, щоб підкреслити наявність змінних при відсутності їхньої специфічної значимості.
Складні терми (функції) складаються з імені функції (нечислового атома) і списку аргументів (термів Прологу, тобто атомів, чисел, змінних або інших складових термів), що взяті у круглі дужки й розділені комами. Групи складних термів використовують для складання фраз Прологу. Не можна розміщувати символ пробілу між функтором (ім'ям функції) і відкриваючою круглою
дужкою. В інших позиціях, однак, пробіли можуть бути корисні для легшого читання програм. Нижче наведено два складні терми:
итого(клієнт(X,23,_), 71)
'Що трапилося?'(нічого)
При завданні імен термів переважніше використати мнемонічні імена, тому що терм a(ж), наприклад, набагато менш інформативний, ніж терм aвтор(жуль_верн).
Ще однією важливою структурою даних у Пролозі є список. Ми познайомимося з ним пізніше. Зараз відзначимо тільки один з видів списків - список символів. Такі списки можуть бути представлені у вигляді рядків, наприклад, перший аргумент складного терму вік("Борис",10) - рядок. При записі рядки беруться у лапки.
 
1.3. Факти
 
Програмувати на Пролозі - означає описувати якийсь світ. Програма на цій мові складається із множини фраз, що задають взаємозв'язок між термами. Кожен терм позначає ту або іншу сутність, що належить світу. Один зі способів опису - це завдання фактів.
Факт - це твердження про те, що існує деяке конкретне відношення. Він є безумовно вірним. У розмовній мові під фактом розуміється вислів типу "Сьогодні сонячно" або "Васі 10 років". На Пролозі це записується у вигляді
'Сьогодні сонячно'.
'Васі 10 років'.
Якщо ви збережете ці факти у файлі й потім завантажите його, то можна
 задавати питання інтерпретаторові Прологу (нагадаємо, що
Фото Капча