*/ ㄇ
boolean isBinaryRelation(pOriginalSet pA, pOriginalSet pB, pCartersianSet pC)
{
pCartersianSet pD=createNullCartersianSet();
for(retOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA))经产妇
{ // 空卡 ←序偶插入 ← 建立序偶 ← 条件语句
for(retOriginalSet(pB);!isEndOfOriginalSet(pB);nextOriginalSetPos(pB))
OrderedCoupleInrtToCartersianSet(pD,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pB)));
}
for(retCartersianSet(pC);!isEndOfCartersianSet(pC); nextCartersianSetPos(pC))
{
if(isInCartersianSet(pD,getCurrentCartersianSetElem(pC)))
;//满足条件,执行空语句,继续循环
el return fal;
}
return true;
}
03
6.03② 试设计一算法,求集合A上的恒等关系。
实现下列函数:
/**
* 给定集合A,求集合A上的恒等关系。
* @param pSet: 原始集合
* @return: 集合A上的恒等关系。
*/
pCartersianSet IdentityRelation(pOriginalSet pA)
{ pCartersianSet pB=createNullCartersianSet();
feel freefor(retOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA))
{ // 空卡 ←序偶插入 ← 建立序偶 ← 条件语句
for(retOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA))
if(getCurrentOriginalSetElem(pA)==getCurrentOriginalSetElem(pA))//The same elements
OrderedCoupleInrtToCartersianSet(pB,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pA)));
}
return pB;
}
04
6.04③ 试设计一算法,求两个卡氏积集合的复合运算。
实现下列函数:
/**
* 给定两个集合,求该两个集合的复合运算。
* @param pA: 卡氏积集合
* @param pB: 卡氏积集合
* @return: pA与pB的复合运算结果。
*/
pCartersianSet CompositeOperation(pCartersianSet pA, pCartersianSet pB)
{ pCartersianSet pC=createNullCartersianSet();
for(retCartersianSet(pA);!isEndOfCartersianSet(pA); nextCartersianSetPos(pA))
{
for(retCartersianSet(pB);!isEndOfCartersianSet(pB); nextCartersianSetPos(pB))
if(isEqualOriginalSetElem(getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pA)),getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pB))))
//获取A卡氏积中序偶的第二元 //获取第二元
OrderedCoupleInrtToCartersianSet(pC,createOrderedCouple(getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pA)),getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pB))) );
}
return pC;
}
05
6.05② 试设计一算法,求一个关系的逆运算。
实现下列函数:
/**
* 求一个关系的逆运算。
* @param pA: 卡氏积集合
* @return: pA的逆运算结果。
*/
pCartersianSet InverOperation(pCartersianSet pA)
{ pCartersianSet pB=createNullCartersianSet();
for(retCartersianSet(pA);!isEndOfCartersianSet(pA); nextCartersianSetPos(pA))
{OrderedCoupleInrtToCartersianSet(pB,createOrderedCouple(getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pA)),getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pA))) );
}
return pB;
}
06
6.06④ 试设计一算法,对某集合A上的一个二元关系,求该关系的幂运算。
实现下列函数:
/**
* 求一个关系的幂运算。
* @param pA: 原始集合
* @param pBinaryRelationR: pA上的关系R
* @param n: 幂运算的次数,且n >= 0
* @return: pBinaryRelationSet的n次幂运算结果。
*/
pCartersianSet CompositeOperation(pCartersianSet pA, pCartersianSet pB)
{ pCartersianSet pC=createNullCartersianSet();
for(retCartersianSet(pA);!isEndOfCartersianSet(pA); nextCartersianSetPos(pA))
{
for(retCartersianSet(pB);!isEndOfCartersianSet(pB); nextCartersianSetPos(pB))
if(isEqualOriginalSetElem(getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pA)),getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pB))))
//获取A卡氏积中序偶的第二元 //获取第二元
OrderedCoupleInrtToCartersianSet(pC,createOrderedCouple(getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pA)),getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pB))) );