Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Лабораторная работа по "Логическое программирование"

Автор:   •  Декабрь 17, 2018  •  Лабораторная работа  •  4,215 Слов (17 Страниц)  •  579 Просмотры

Страница 1 из 17

Министерство образования и науки Российской Федерации

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

«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Факультет математики и информационных технологий

Кафедра программного обеспечения вычислительной техники и автоматизированных систем

ОТЧЕТ

по лабораторным  работам

по дисциплине: «Логическое программирование»

ОГУ 09.03.01.4017.050 О

Проверил

канд. техн. наук, доцент

__________Е.Н. Чернопрудова

«____» ____________2017г.

Выполнила

студентка группы 15ИВТ(ба)ОП-2

__________Р.А. Соловьева

«____» ____________2017г.

Оренбург 2017

Содержание

1        Задание 1 «Родословное дерево»        3

2        Задание 2 «Решение системы уравнений в среде Турбо-Пролог»        5

3        Задание 3 Работа со списками        7

4        Задание 4 Логическая задача        13

5        Задание 5 Работа с файлами        16


  1. Задание 1 «Родословное дерево»

Цель работы:

- ознакомление с принципами и приобретение навыков создания и отладки программ на языке Турбо-Пролог.

 - научиться формализовывать знания и правила в среде Prolog.

Постановка задачи: Средствами языка Prolog реализовать родословное дерево. Программа должна представить пользователю возможность работать с генеалогическим деревом посредством задания внешних целевых запросов. Дерево представить в виде графа, по которому составить базу фактов (используя отношение родитель(string,string), мужч(string), женщ(string) и при необходимости брак(string,string)).

В результате работы программы определить кто является бабушкой/ дедушкой, братом/сестрой, дядей/тетей, кузеном/кузиной, прабабушк/прадедушк.

Родословное дерево в графическом виде представлено на рисунке 1.

[pic 1]

Рисунок 1 – Родословное дерево

Программный код родословного дерева:

DOMAINS

imya=string

PREDICATES

nondeterm women(imya)

nondeterm men(imya)

nondeterm brak(imya, imya)

nondeterm roditeli(imya,imya,imya)

nondeterm mother(imya, imya)

nondeterm father(imya, imya)

nondeterm grandmother(imya, imya)

nondeterm grandfather(imya, imya)

nondeterm sister(imya, imya)

nondeterm brother(imya, imya)

nondeterm unt(imya, imya)

nondeterm uncle(imya, imya)

nondeterm cuseen(imya, imya)

nondeterm cusen(imya, imya)

nondeterm grandgrandmother(imya, imya)

nondeterm grandgrandfather(imya, imya)

CLAUSES

women("Olga").

women("Regina").

women("Lena").

women("Tatyana").

women("Zoya").

women("Natalya").

women("Anna").

women("Katya").

women("Valya").

women("Taisiya").

women("Nata").

women("Kseniya").

women("Pelageya").  

men("Roma").

men("Trofim").

men("Danil").

men("Aleksandr2").

men("Aleksandr3").

men("Sastha").

men("Aleksandr1").

men("Victor").

men("Vladimir").

men("Nikolaj").

men("Vladislav").

men("Oleg").

men("Kondrat").

men("Pavel").

men("Mihail").

brak("Aleksandr2","Olga").

brak("Aleksandr3","Lena").

brak("Sasha","Katya").

brak("Victor","Zoya").

brak("Aleksandr1","Tatyana").

brak("Kondrat","Anna").

brak("Nikolaj","Valentina").

brak("Vladislav","Kseniya").

brak("Mihail","Pelageya").

roditeli("Aleksandr2","Olga","Regina").

roditeli("Aleksandr3","Lena","Roma").

roditeli("Aleksandr3","Lena","Taisiya").

roditeli("Sasha","Katya","Danil").

roditeli("Sasha","Katya","Trofim").

roditeli("Victor","Zoya","Aleksandr2").

roditeli("Victor","Zoya","Natalya").

...

Скачать:   txt (44.9 Kb)   pdf (963.5 Kb)   docx (325.2 Kb)  
Продолжить читать еще 16 страниц(ы) »
Доступно только на Essays.club