Факты и правила на Прологе. Основные приемы работы в Visual Prolog


Лабораторная работа №1
Тема: Факты и правила на Прологе. Основные приемы работы в Visual Prolog
Выполнила

5.9 Напишите программу, которая бы, имея факты (предикаты): мужчина(кто), женщина(кто), родитель(кто,чей). Определяла бы, кто кому приходится внучатым племянником, племянницей.

/* Программа Lab1_5.9 PRO */
predicates
perens(symbol, symbol)
vplemnik(symbol, symbol)
vplemnica(symbol, symbol)
man(symbol)
woman(symbol)
clauses
perens(barbara,lisa).
perens(anna,katya).
perens(anna,petr).
perens(tatiana,mihail).
perens(dmitriy,mihail).
perens(valera,nikolay).
perens(liza,alex).
perens(katya,juli).
perens(petr,alex).
perens(petr,alexandr).
perens(mihail,juli).
perens(nikolay,raisa).
perens(alex,kostya).
perens(alexandr,lyuda).
perens(juli,lyuda).
perens(raisa,kostya).
man(sergev).
man(dmitriy).
man(valera).
man(petr).
man(mihail).
man(nikolay).
man(alex).
man(alexandr).
man(kostya).
woman(barbara).
woman(anna).
woman(tatiana).
woman(liza).
woman(katya).
woman(jyli).
woman(raisa).
woman(lyuda).
vplemnik(X,Y):-perens(A,Y), perens(A,B), perens(B,D),
perens(D,X), B<>Y,man(X).
vplemnica(X,Y):-perens(A,Y),perens(A,B),perens(B,D), perens(D,X),B<>Y,woman(X).

goal /* (Цель) запрос: */
vplemnik(X,Y);
vplemnica(X,Y).

6.4 Добавив к условию задания 5 предикат супруг(кто, чей), определить, кто кому приходится невесткой, зятем

/* Программа Lab1_5.9 PRO */
predicates
perens(symbol, symbol)
syprygi(symbol, symbol)
ziat(symbol, symbol)
nevestka(symbol, symbol)
man(symbol)
woman(symbol)
clauses
perens(barbara,lisa).
perens(anna,katya).
perens(anna,petr).
perens(tatiana,mihail).
perens(dmitriy,mihail).
perens(valera,nikolay).
perens(liza,alex).
perens(katya,juli).
perens(petr,alex).
perens(petr,alexandr).
perens(mihail,juli).
perens(nikolay,raisa).
perens(alex,kostya).
perens(alexandr,lyuda).
perens(juli,lyuda).
perens(raisa,kostya).

man(sergev).
man(dmitriy).
man(valera).
man(petr).
man(mihail).
man(nikolay).
man(alex).
man(alexandr).
man(kostya).

woman(barbara).
woman(anna).
woman(tatiana).
woman(liza).
woman(katya).
woman(jyli).
woman(raisa).
woman(lyuda).

syprygi(X,Y):-perens(X,A), perens(Y,A),X<>Y.

ziat(X,Y):-perens(Y,D),syprygi(D,X),man(X).
nevestka(X,Y):-syprygi(X,D),perens(Y,D),woman(X).

goal /* (Цель) запрос: */
ziat(X,Y);
nevestka(X,Y).

Загрузка...