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

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

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

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

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

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

- 6 -

ФИЛИАЛ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

УНИВЕРСИТЕТ "МЭИ"

в г. Смоленске

Кафедра Вычислительной техники

Лабораторная работа № 1

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

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

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

листинг программа логическая граф

Выполнил: Старовойтов И.П.

Группа: ВМ-11з

Преподаватель: Сухачев Н.И.

Смоленск 2014

Цель работы

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

Задание 1

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

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

- 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 вершин, среди которых есть и изолированные вершины. Для получения графа составить программу, определяющую, существует ли путь между любой парой его вершин.

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

- 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*x^2+b*x+c=0

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

- 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<X,X<2,write ("vvedite a: "),readreal (A),write ("vvedite c: "), readreal (C),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).

Блок-схема

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

- 6 -

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


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

  • Системы линейных алгебраических уравнений. Код программы для решения систем линейных алгебраических уравнений. Математические и алгоритмические основы решения задачи методом Гаусса. Программная реализация решения. Алгоритмы запоминания коэффициентов.

    лабораторная работа [23,5 K], добавлен 23.09.2014

  • Использование MS Excel для математических расчетов. Описание численных методов решения системы линейных алгебраических уравнений. Решение систем линейных алгебраических уравнений с методами Крамера и Зейделя и с помощью табличного процессора MS Excel.

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

  • Исследование методов решения задачи о ходе коня. Описание алгоритмов для итеративной и рекурсивной программ. Генерация перестановок элементов по индексам. Построение эйлерова цикла на графе. Поиск кратчайшего пути на графе. Программная реализация задачи.

    курсовая работа [411,6 K], добавлен 25.04.2013

  • Требования к языкам программирования, их эффективность, лаконичность, ясность, реальные возможности. Создание языка С#. Применение систем линейных алгебраических уравнений для практических задач, сущность и особенности метода Крамера для их решения.

    курсовая работа [118,1 K], добавлен 13.11.2009

  • Численные методы решения задач. Решение алгебраических и трансцендентных уравнений. Уточнение корня по методу половинного деления. Решение систем линейных уравнений методом итераций. Методы решения дифференциальных уравнений. Решение транспортной задачи.

    курсовая работа [149,7 K], добавлен 16.11.2008

  • Изучение систем линейных алгебраических уравнений (СЛАУ) с использованием табличного процессора MS Excel 2007. Пример решения системы линейных алгебраических уравнений методом Крамера. Прикладное программное обеспечение, применяемое для решения СЛАУ.

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

  • Применение итерационных методов численного решения системы линейных алгебраических уравнений при вычислении на ЭВМ. Математические и алгоритмические основы решения задачи, метод Гаусса. Функциональные модели и блок-схемы, программная реализация решения.

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

  • Разработка простейших линейных алгоритмов (составление логических выражений), программ с ветвлениями, циклических программ и составление их блок-схем. Практическое выполнение обработки массивов на примере вычисления элементов квадратной матрицы.

    контрольная работа [173,3 K], добавлен 01.03.2010

  • Построение графа связей фактов и определение структуры базы знаний. Описание функций инициализации и констатации фактов, входных и выходных данных. Операции, направленные на занесение фактов и действий в базу знаний. Итоговое представление базы знаний.

    курсовая работа [176,9 K], добавлен 13.11.2012

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

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

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