Знакомство с Visual Prolog
Автор: Dmitry • Сентябрь 22, 2023 • Лабораторная работа • 695 Слов (3 Страниц) • 92 Просмотры
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное
образовательное учреждение высшего образования
«Тульский государственный университет»
Институт прикладной информатики и компьютерных наук
Кафедра вычислительной техники
Отчет по лабораторной работе № 1
по дисциплине: «Функциональное и логическое программирование»
на тему: «Знакомство с Visual Prolog»
вариант № 26
Выполнил студент 3 курса группы: | __________ . |
Проверил к. т. н. доцент кафедры ВТ: | __________ . . |
Тула 2023
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 3
Ход работы 4
ЗАКЛЮЧЕНИЕ 8
Приложении А Семейное дерево 9
Приложении А Радиус основания конуса 11
ВВЕДЕНИЕ
Целью работы является узнать и усвоить базовые понятия языка и основы написания программ в среде Visual Prolog на языке Пролог.
Задание на работу:
Создайте предикат, проверяющий, являются ли два человека: сестрами; братьями; бабушкой и внуком (внучкой); дядей и племянником (племянницей); двоюродными братьями; родственниками.
Создайте программу, вычисляющую радиус основания конуса по его объему и высоте.
Ход работы
Генеалогическое древо, - схематичное представление родственных связей, родословной росписи в виде условно-символического «дерева», у «корней» которого указывается родоначальник, на «стволе» - представители основной (по старшинству) линии рода, а на «ветвях» - различных линиях родословия, известные его потомки - «листья» на рисунке 1 представлено семейное дерево для которого разрабатывалась программа на языке Prolog.
[pic 1]
- Семейное дерево
Были разработаны следующие предикаты:
Предикат «сестры(X, Y) :- родители(Z, X), родители(Z, Y), женщина(X), женщина(Y), X<>Y.» - входными данными являются строки содержащие имена сестер предикат проверяет что у них одни родители и что «X» и «Y» не равны рисунок 2.
[pic 2]
- Предикат сестры
Предикат «братья(X, Y) :- родители(Z, X), родители(Z, Y), мужчина(X), мужчина(Y), X<>Y.» - входными данными являются строки содержащие имена братьев предикат проверяет что у них одни родители и что «X» и «Y» не равны рисунок 3.
[pic 3]
- Предикат братья
Предикат «бабушка(X, Y) :- женщина(X), родители(X, Z), родители(Z, Y).» - входными данными являются строки содержащие имена бабушки и внука или внучки «X» и «Y» соответственно предикат проверяет что «X» это женщина и что между бабушкой и внуком есть один родственник рисунок 4.
[pic 4]
- Предикат бабушка
Предикат «дядя(X, Y) :- мужчина(X), братья(X, Z), родители(Z, Y).» - входными данными являются строки содержащие имена дяди и племянника или племянницы «X» и «Y» соответственно предикат проверяет что «X» является мужчиной и что есть связь через брата отца рисунок 5.
[pic 5]
- Предикат дядя
Предикат «двоюродный_брат(X, Y) :- мужчина(Y), мужчина(X), родители(Z, X), родители(W, Y), X <> Y, Z <> W, (братья(Z, W) ; сестры(Z, W)).» входными данными являются строки содержащие имена двоюродных братьев. Проверяет связь между братьями через родственников родителей рисунок 6.
...