Описание базы знаний "Родственные отношения. Поиск путей в ориентированном графе. Решение алгебраических задач
Принципы составления простейших логических программ на примере баз знаний "Родственные отношения". Составление ориентированного графа без циклов, решения алгебраических уравнений с легко воспринимаемой внутренней логикой. Алгоритмы и листинги программ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 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