1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
#include <stdio.h>
#include "genlib.h"
#include "simpio.h"
#define size 26
char elements(bool A[], bool B, bool set[]);
void displaySet(bool set[]);
bool unions(bool A[],bool B[],bool C[]);
bool intersection(bool A[],bool B[],bool C[]);
bool contain(bool A[],bool B[]);
typedef enum
{
a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z
}
letters;
int main()
{
bool set[size];
bool A[size];
bool B[size];
bool C[size];
elements(A, B, set);
unions(A,B,C);
displaySet(C);
intersection(A,B,C);
getchar();
return 0;
}
/*************************************…
/* This function initializes the values for each set. */
char elements(bool A[], bool B, bool set[])
{
int i;
char element;
letters l;
printf("enter .\n");
printf("Enter the first element:");
for(l=a; l<=z;l=(letters)(l+1))
{
set[l]=false;
}
for (i=0; i<size; i++)
{
element=getchar();
element=element-97;
l=(letters)element;
if(l>=a&&l<=z)
{
set[l]=true;
}
}
}
/*************************************…
/* This function displays the values of a set to the output. */
void displaySet(bool set[])
{
letters l;
for(l=a; l<=z; l=(letters)(l+1))
{
if(set[l])
{
printf("%c", (l+97));
}
}
}
/*************************************…
/*This function computes the union of sets A and B and puts the value in set C.*/
bool unions(bool A[],bool B[],bool C[])
{
letters letter;
char ch;
for(letter=a; letter<=z; letter=(letters)(letter+1))
{
if((A[letter])||(B[letter]))
{
C[letter]=true;
}
}
printf("The union of set A and set B = { ");
ch = C[letter];
printf("%c, ", ch);
getchar();
}
/***********************************in…
/* This function computes the intersection of set A and set B and puts the result
* in set C. */
bool intersection(bool A[],bool B[],bool C[])
{
letters letter;
char ch;
for(letter=a; letter<=z; letter=(letters)(letter+1))
{
if(A[letter]&&B[letter])
{
C[letter]=true;
}
}
ch=C[letter];
printf("%c, ", ch);
getchar();
}
/************************************c…
/* This function returns true if B is a proper subset of A and returns false otherwise. */
bool contain(bool A[],bool B[])
{
bool isSubset;
letters letter;
isSubset=true;
for(letter=a; letter<=z; letter=(letters)(letter+1))
{
if(B[letter]&&A[letter])
{
isSubset=true;
A[letter]=false;
B[letter]=false;
}
if(B[letter]&&!A[letter])
{
isSubset=false;
break;
}
}
if(isSubset)
{
isSubset=false;
for(letter=a; letter<=z; letter=(letters)(letter+1))
{
if(A[letter]&&!B[letter])
{
isSubset=true;
}
}
}
return (isSubset);
getchar();
}
| |