示例#1
0
int main()
{
char **A;
char **B;
int n = 5;
char **R, **S, **T;
A = relace_make(n);
A[0][1] = A[1][2] = A[2][3]  = 1;
B = relace_copy(A, n);

printf("relace A je: ");
relace_print(A, n);
//relace_print(B, n); kontrola kopie
printf("reflexivni uzaver relace A je: ");
R = reflexivni(A, n);
relace_print(R, n);

printf("symetricky uzaver relace B je: ");
S = symetricky(A, n);
relace_print(S, n);

printf("tranzitivni uzaver relace C je: ");
T = tranzitivni(A, n);
relace_print(T, n);

    return 0;
}
示例#2
0
int main(int argc, char **argv)
{
	// Relace R definovaná pomocí matice
	/*
	char r0[] = {0, 0, 1, 0, 0};
	char r1[] = {0, 0, 1, 0, 0};
	char r2[] = {1, 0, 1, 0, 1};
	char r3[] = {0, 0, 0, 0, 0};
	char r4[] = {0, 0, 0, 0, 0};
	*/

	char r0[] = {0, 0, 1, 0, 0};
	char r1[] = {0, 0, 0, 0, 0};
	char r2[] = {0, 0, 0, 3, 0};
	char r3[] = {0, 0, 0, 0, 1};
	char r4[] = {0, 0, 0, 0, 0};

	char *R[] = {r0, r1, r2, r3, r4};

	// Velikost matice je počítána podle počtu prvků v prvním řádku
	int n = sizeof(r0)/sizeof(char);

	// Zjištění uzávěrů
	char **Ur = reflexivni(R, n);
	char **Us = symetricky(R, n);
	char **Ut = tranzitivni(R, n);

	// Vypsání relace R
	printf("Relace R je: ");
	vypisRelaci(R, n);

	// Vypsání reflexivního uzávěru
	printf("Reflexivní uzávěr relace R je: ");
	vypisRelaci(Ur, n);

	// Vypsání symetrického uzávěru
	printf("Symetrický uzávěr relace R je: ");
	vypisRelaci(Us, n);

	// Vypsání tranzitivního uzávěru
	printf("Tranzitivní uzávěr relace R je: ");
	vypisRelaci(Ut, n);

	return 0;
}