Professional Documents
Culture Documents
Лабораторна робота №2 «Структура програми в середовищі розробки Visual Prolog»
Лабораторна робота №2 «Структура програми в середовищі розробки Visual Prolog»
ПРИРОДОКОРИСТУВАННЯ
Факультет інформаційних технологій
Кафедра комп’ютерних наук
Лабораторна робота №2
(4 години)
Київ - 2023
Мета роботи: вивчити найпростіші прийоми роботи в середовищі
Visual Prolog.
Завдання:
1. Ознайомитись з методичною розробкою до лабораторноъ роботи.
2. Ознайомитись з рекомендованною літературою.
3. Дослідити основні процеси створення програмних додатків в
середовищі Visual Prolog.
4. Виконати завдання до лабораторної роботи..
5. За результатами досліджень скласти звіт з обґрунтованими
висновками.
Форма звіту
1. Тема та мета.
2. Опис завдання згідно розроблюваної студентом системи.
Рекомендована література
1. Братко И. Алгоритмы искусственного интелекта на языке PROLOG. –
М.:2004. – 640 с.
2. Eduardo Costa. Visual Prolog 7.1 for Tyros. Перевод с английского.
http://download.pdc.dk/vip/71/Costas-Tyros_rus_MS.pdf, 122 c.
3. Thomas W. de Boer. A Beginners' Guide to Visual Prolog Version 7.2,
2009. http://download.pdc.dk/vip/72/books/deBoer/VisualPrologBeginners.pdf
2
Теоретичні відомості
3
4
Наш Турбо-Пролог відповідає просто No.
5
Результат
6
Звичайно, при цьому виникає питання: як, наприклад, з оператора
owns(susan,horse).
7
Завдання для самостійної роботи
Завдання 1
Запишіть наступні факти й правила у формі, яка прийнята в мові Prolog
Завдання 2
Побудуйте по тому ж принципу власну базу знань, яка містить факти і
правила типу якщо-то про яких-небудь людей або об’єкти і зробіть із неї
кілька логічних висновків.
Контрольні питання
1. Яку інформацію містить розділ clauses?
2. Як записати в Visual Prolog твердження "Маша вивчає математику"?
3. Як записуються змінні в Visual Prolog?
4. Як перевірити правильність твердження?
5. Як реалізується дедукція в Visual Prolog?
8
Додаток А, Приклад виконання завдання
Текст програми
________________________________________________________________________________
main.pro
/*****************************************************************************
******************************************************************************/
implement main
open core
constants
className = "main".
classVersion = "".
class facts
студент: (string, integer).
куратор: (string, integer).
clauses
студент("Семко", 205).
студент("Батченко", 205).
студент("Головко", 201).
студент("Ковалевский", 206).
студент("Радченко", 202).
clauses
classInfo(className, classVersion).
clauses
run():-
console::init(),
%run():-
console::init(),
console::clearOutput(),
console::setTextAttribute(3,4),
console::setConsoleTitle("Институт компьютерных технологий"),
console::setTextAttribute(11),
stdio::write("Лабораторная робота №3\nФакультет компьютерных систем\nГруппа 205\nСемко\n"),
stdio::nl,
console::setTextAttribute(7),
9
stdio::write("В какой группе чмслится студент по фамилии: "),
console::setTextAttribute(14),
Фамилия = stdio::readLine(),
студент(Фамилия, Гр),
console::setTextAttribute(7),
stdio::write("Группа - ", Гр),
stdio::nl,
fail;
stdio::write("Кто куратор у студента по фамилии: "),
console::setTextAttribute(14),
Студент = stdio::readLine(),
студент(Студент, Гр),
куратор(Куратор, Гр),
console::setTextAttribute(7),
stdio:: write("Куратор - ", Куратор),
stdio::nl,
fail;
console::setTextAttribute(13),
stdio::write("Для завершения программы нажмите клавишу ENTER ---> "),
_ = stdio::readLine(),
console::setTextAttribute(9),
stdio::write("Программа закончена ---> "),
programControl::sleep(2000).
goal
mainExe::run(main::run).
________________________________________________________________________________
main.ph
/*****************************************************************************
******************************************************************************/
#requires @"main.pack"
% publicly used packages
#include @"pfc\core.ph"
% exported interfaces
% exported classes
#include @"main.cl"
________________________________________________________________________________
10
main.pack
/*****************************************************************************
******************************************************************************/
#include @"main.ph"
% private interfaces
% private classes
% implementations
#include @"main.pro"
________________________________________________________________________________
Main.cl
/*****************************************************************************
******************************************************************************/
class main
open core
predicates
classInfo : core::classInfo.
% @short Class information predicate.
% @detail This predicate represents information predicate of this class.
% @end
predicates
run : core::runnable.
________________________________________________________________________________
Laba_3_c.manifest
________________________________________________________________________________
12
13