Logo GenDocs.ru

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


Загрузка...

3 - файл Отчет по ЛР2.doc


Загрузка...
3
скачать (94.5 kb.)

Доступные файлы (29):

pers.pas
test.pas
ЛР1.doc71kb.26.06.2009 03:18скачать
GEN.PRO
MAX.PRO
OTN.PRO
ROD.PRO
WELCOME.PRO
Отчет по ЛР2.doc66kb.14.05.2009 19:57скачать
A1.txt1kb.15.05.2009 15:05скачать
A3.txt1kb.15.05.2009 15:06скачать
B1.txt1kb.15.05.2009 15:07скачать
D1.txt1kb.15.05.2009 15:08скачать
D2.txt1kb.15.05.2009 15:08скачать
D3.txt1kb.15.05.2009 15:08скачать
E1.txt1kb.15.05.2009 15:09скачать
Full Bases.doc36kb.16.05.2009 01:18скачать
G2.txt1kb.15.05.2009 15:10скачать
Expert.cfg
Expert.dof
Expert.dpr
Expert.res
KiLL~.bat
Unit1.dcu
Unit1.ddp
Unit1.dfm
Unit1.pas
Отчет по ЛР3.doc127kb.16.05.2009 01:29скачать
Титульный лист.doc34kb.26.06.2009 03:18скачать

Отчет по ЛР2.doc

Реклама MarketGid:
Загрузка...
ЛАБОРАТОРНАЯ РАБОТА №2


Тема: Логический подход (логика предикатов и программирование на языке Prolog).


Цель: построение моделей, программная реализация СИИ на языке Prolog.


Краткие теоретические сведения:

Пролог - это осуществленная компанией Borland International реализация языка программирования высокого уровня компиляторного типа. Его отличает большая скорость компиляции и счета. Пролог предназначен для выдачи ответов, которые он логически выводит при посредстве своих мощных внутренних процедур.

Вызов самого Пролога осуществляется командой «Prolog_Rus.bat». Для выхода в главное меню, «Esc». Главное меню системы Prolog, предлагает доступные пользователю опции (команды) в верхней части экрана:

1.Запуск программы на счет (Run).

2.Трансляция программы (Compile).

3.Редактирование текста программы (Edit).

4.Задание опций компилятора (Options).

5.Работа с файлами (Files) и Выход из системы (Quit)..

6.Настройка системы (Setup).

Prolog - это декларативный язык, программы на котором содержат объявления логических взаимосвязей, необходимых для решения задачи. В Прологе рассматриваются отношения между утверждениями и объектами, характерные для логики предикатов.


^ Выполнение работы:

Задание 1. Рассмотреть пример программы на языке Prolog - нахождение большего числа, из двух.

Текст программы:

predicates

max(integer,integer)

clauses

max(X,Y):-X>Y.


Пример выполнения:

/* 10 > 5? */

Goal: max(10,5)

Yes


/* 2 > 8? */

Goal: max(2,8)

No


Задание 2. Набрать текст программы отношения «нравится» и задать вопросы.

Текст программы:

predicates

likes(symbol,symbol)


clauses

likes(ellen, tennis).

likes(john, football).

likes(tom, baseball).

likes(eric, swimming).

likes(mark, tennis).

likes(bill, Activity) if likes(tom, Activity).

Пример выполнения:

/* Что любит Ellen? */

Goal: likes(ellen,X)

X=tennis

1 Solution


/* Любит ли Ellen футбол? */

Goal: likes(ellen,football)

No


/* Кто любит баскетбол? */

Goal: likes(X,baseball)

X=tom

X=bill

2 Solutions


Задание 3. Набрать текст программы «Родственные отношения» и задать вопросы.

Текст программы:

domains

s=string


predicates

man(s)

woman(s)

parent(s,s)


clauses

man("Kolya").

man("Petya").

woman("Tanya").

woman("Masha").

parent("Masha","Petya").

parent("Masha","Tanya").

parent("Kolya","Tanya").

parent("Kolya","Petya").


Пример выполнения:

/* Маша родитель Тани? */

Goal: parent("Masha","Tanya")

Yes


/* Кто родитель Пети? */

Goal: parent(X,"Petya")

X=Masha

X=Kolya

2 Solutions


/* Кто является ребенком родителя Маши? */

Goal: parent("Masha",Y)

Y=Petya

Y=Tanya

2 Solutions


/* Таня женщина? */

Goal: woman("Tanya")

Yes


Задание 4. Написать программу своего генеалогического дерева, используя предыдущее задание и правила: отец, мать, ребенок, сестра, брат, дедушка, бабушка, внук, прародители. Задать вопросы.

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





Текст программы:

domains

s=symbol

predicates

man(s)

woman(s)

parent(s,s)

father(s,s)

mother(s,s)

child(s,s)

brother(s,s)

sister(s,s)

vnuk(s,s)

grandmother(s,s)

grandfather(s,s)

parent_parent(s,s)

ancestor(s,s)

clauses

man("I").

man("Vita").

man("Yra").

man("Ilya").

man("Vova").


woman("Valy").

woman("Lida").

woman("Tany").

woman("Luba").

woman("Lena").


parent("Valy","I").

parent("Ilya","Valy").

parent("Ilya","Vita").

parent("Lida","Valy").

parent("Lida","Vita").

parent("Lena","Tany").

parent("Vova","Tany").

parent("Vita","Yra").

parent("Vita","Luba").

parent("Tany","Yra").

parent("Tany","Luba").

mother(X,Y):-parent(X,Y),woman(X).

father(X,Y):-parent(X,Y),man(X).

child(Y,X) :-parent(X,Y).

brother(X,Y):-parent(Z,X),parent(Z,Y),man(X).

sister(X,Y) :-parent(Z,X),parent(Z,Y),woman(X).

grandmother(X,Y):-parent_parent(X,Y),woman(X).

grandfather(X,Y):-parent_parent(X,Y),man(X).

vnuk(X,Z) :-child(X,Y),child(Y,Z).


parent_parent(X,Z):-parent(X,Y),parent(Y,Z).

ancestor(X,Z) :-parent(X,Z).

ancestor(X,Z) :-parent(X,Y),ancestor(Y,Z).


Пример выполнения:

/* Кто мать Любы? */

Goal: mother(X,"Luba")

X=Tany

1 Solution


/* Чей отец Витя? */

Goal: father("Vita",Y)

Y=Yra

Y=Luba

2 Solutions


/* Кто ребенок Вали? */

Goal: child(X,"Valy")

X=I

1 Solution


/* Брат Любы? */

Goal: brother(X,"Luba")

X=Yra

X=Yra

2 Solutions


/* Сестра Юры?*/

Goal: sister(X,"Yra")

X=Luba

X=Luba

2 Solutions


/* Внуки Лиды? */

Goal: vnuk(X,"Lida")

X=I

X=Yra

X=Luba

3 Solutions


/* Бабушки Юры? */

Goal: grandmother(X,"Yra")

X=Lida

X=Lena

2 Solutions


/* Дедушки Любы? */

Goal: grandfather(X,"Luba")

X=Ilya

X=Vova

2 Solutions


/* Дедушки и бабушки Любы? */

Goal: parent_parent(X,"Luba")

X=Ilya

X=Lida

X=Lena

X=Vova

4 Solutions


/* Все мои предки? */

Goal: ancestor(X,"I")

X=Valy

X=Ilya

X=Lida

3 Solutions


Задание 5. Написать приветсвие.

Текст программы:

predicates

hello


goal

hello.

clauses

hello:-write("Welcome to to Turbo Prolog!"),nl.


Пример выполнения:

Welcome to to Turbo Prolog!


Press the SPACE bar


Вывод: в ходе проделанной лабораторной работы изучил основные элементы и понятия языка Prolog. Разобрал задания работы, разработал своё генеалогическое дерево своей семьи.


Скачать файл (94.5 kb.)

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

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru