Помощь в написании студенческих работ
Антистрессовый сервис

Описание базы знаний "Родственные отношения. 
Поиск путей в ориентированном графе. 
Решение алгебраических задач

Лабораторная работаПомощь в написанииУзнать стоимостьмоей работы

Составить ориентированный граф без циклов из 7−10 вершин, среди которых есть и изолированные вершины. Для получения графа составить программу, определяющую, существует ли путь между любой парой его вершин. Филиал федерального государственного бюджетного образовательного учреждения высшего профессионального образования национальный исследовательский университет «мэи». Func (A, B, C… Читать ещё >

Описание базы знаний "Родственные отношения. Поиск путей в ориентированном графе. Решение алгебраических задач (реферат, курсовая, диплом, контрольная)

— 6 ;

ФИЛИАЛ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ «МЭИ»

в г. Смоленске Кафедра Вычислительной техники Лабораторная работа № 1

По курсу «Основы логического программирования»

Тема: Описание базы знаний «Родственные отношения.

Поиск путей в ориентированном графе. Решение алгебраических задач" .

листинг программа логическая граф Выполнил: Старовойтов И.П.

Группа: ВМ-11з Преподаватель: Сухачев Н.И.

Смоленск 2014

Цель работы

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

Задание 1

Составить семантический граф из 9−12 вершин. Вершинам графа сопоставить имена родственников, а дугам — родственные отношения. Для полученного графа разработать логическую программу, которая выдает сведения о родственных отношениях между любой парой введенных имен.

— 6 ;

Мать

Отец

Дядя

Листинг программы:

domains

name=symbol

predicates

father (name, name)

mother (name, name)

brother (name, name)

grandfather (name, name)

grandmother (name, name)

uncle (name, name)

child (name, name)

dialog

vnuk (name, name)

otnoshenie (name, name)

clauses

father (stepan, lena).

father (stepan, valya).

mother (maria, lena).

mother (maria, valya).

mother (valya, denis).

mother (valya, kostya).

mother (lena, roma).

mother (lena, stas).

uncle (stas, sasha).

grandmother (X, Y): — mother (Z, Y), mother (X, Z).

grandfather (X, Y): — mother (Z, Y), father (X, Z).

brother (X, Y): — mother (Z, X), mother (Z, Y).

child (X, Y): — mother (Y, X); father (Y, X).

vnuk (X, Y): — mother (Z, X), father (Y, Z).

vnuk (X, Y): — mother (Z, X), mother (Y, Z).

dialog: — write («Введите 1-ое имя: «), readln (X), write («Введите 2-ое имя»), readln (Y), otnoshenie (X, Y).

otnoshenie (X, Y): — grandfather (X, Y), write (X," дедушка", Y).

otnoshenie (X, Y): — grandmother (X, Y), write (X," бабушка «, Y).

otnoshenie (X, Y): — brother (X, Y), write (X," брат «, Y).

otnoshenie (X, Y): — uncle (X, Y), write (X," дядя «, Y).

otnoshenie (X, Y): — mother (X, Y), write (X," мама «, Y).

otnoshenie (X, Y): — father (X, Y), write (X," папа «, Y).

otnoshenie (X, Y): — vnuk (X, Y), write (X," внук «, Y).

otnoshenie (X, Y): — child (X, Y), write (X," сын «, Y).

Задание 2

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

— 6 ;

domains

name=symbol

predicates

join (name, name).

path (name, name).

dialog

goal dialog.

clauses

join (x1,x4).

join (x1,x3).

join (x2,x4).

join (x2,x3).

join (x4,x3).

join (x3,x5).

join (x3,x7).

path (x1,x3): — join (x1,x4), join (x4,x3).

path (x1,x4).

path (x1,x3).

path (x2,x4).

path (x2,x3).

path (x4,x3).

path (x3,x5).

path (x3,x7).

path (x1,x5): — join (x1,x3), join (x3,x5).

path (x1,x7): — join (x1,x3), join (x3,x7).

path (x2,x5): — join (x2,x3), join (x3,x5).

path (x2,x7): — join (x2,x3), join (x3,x7).

path (x4,x5): — join (x4,x3), join (x3,x5).

path (x4,x7): — join (x4,x3), join (x3,x7).

dialog: — write («Vvedite 1 vershiny: «), readLn (X), write («Vvedite 2 vershiny: «), readLn (Y), path (X, Y).

Результаты:

Goal: Vvedite 1 vershiny: x1

Vvedite 2 vershiny: x5

YES

Goal: Vvedite 1 vershiny: x1

Vvedite 2 vershiny: x5

NO

Задание 3

Решить квадратное уравнение вида: a*x2+b*x+c=0

— 6 ;

Листинг программы:

domains

arg=real

predicates

func (arg, arg, arg)

clauses

func (A, B, C): — D=B*B-4*A*C, D>0,Y1= (-B+sqrt (B*B-4*A*C)) / (2*A), Y2= (-B-sqrt (B*B-4*A*C)) / (2*A), write (Y1), write («,»), write (Y2).

func (A, B, C): — D=B*B-4*A*C, D=0,Y= (-B) / (2*A), write (Y).

func (A, B, C): — D=B*B-4*A*C, D<0,write («Net korney»).

Задание 4

Вычислить значение функции вида:

где f1 (x), f2 (x), f3 (x) — некоторые функции от переменной x.

Вариант 8.

Листинг программы:

domains

arg=real

predicates

func (arg)

clauses

func (X): — 0<2,write («vvedite a: «), readreal (A), write («vvedite c: «), readreal ©, Y=A*X*X+C*X+sqrt (X), write («Y=», Y).

func (X): — 2<=X, X<4,Y=cos (X) +sin (X) *sin (X) *sin (X), write («Y=», Y).

func (X): — 4<=X, write («vvedite a: «), readreal (A), Y=A*A+2*ln (X) /ln (10), write («Y=», Y).

Блок-схема

— 6 ;

Показать весь текст
Заполнить форму текущей работой