Corning Community College
CSCS2330 Discrete Structures
Implement a visual set logic program that demonstrates the basic set operations in some way.
You will want to go here to edit and fill in the various sections of the document:
A member is an element within a set. Each member within a set is unique from each other (no duplicates).
There also cannot be more members in the set than there is space in the array. It only has as much memory allocated as the array specifies. To make the set larger you would need to make a new array.
a Venn Diagram is a diagram style that shows the logical relation between sets. This diagram is composed of circles with the values of each set inside their own circles. This allows a value from a set to be present in more than one circle. For example, we can have one circle containing animals that can fly, and one circle containing animals with two legs. Animals with both, two legs, and can fly, will be presented in the overlapping section of the circles while animals with only one of those qualities will be present in only one circle.
A set is a group of unique objects, typically ordered in some way or another. Sets are typically used to test membership of a given value rather than retrieving a specific element. Sets (at least for us) will typically be stored in Arrays, however they can be stored in a List.
For example if you want an occurrence to only happen if a specific value is one of 5 different items, you could compare it against a set. Your code can then branch off whether there is a match or not.
A Universe or a Universal set has all components of all sets within it. It is typically written as U. An example: if A{1,2,3} and B{a,b,c} then U{1,2,3,a,b,c}. If you think of a Venn Diagram then a Universal set is the whole Diagram.
The union of sets is an operation that combines two or more sets to create a new set that contains all the unique elements from the input sets. In other words, the union of sets A and B, denoted by A ∪ B, is a union of sets A and B includes all elements that are present in either A or B, without duplicating any elements. If an element appears in both sets A and B, it is included in the union only once. You can extend this concept to the union of more than two sets. The union of three or more sets, such as A ∪ B ∪ C, includes all elements that are present in any of the three sets. The union operation is commutative, meaning that the order of the sets does not matter; A ∪ B is the same as B ∪ A.
The intersection of Sets is defined as the set of common elements of all the sets. This operation can be thought of as being equivalent to the logical AND operator. If set A = { 1, 3, 5, 8, 9 } and set B = { 2, 3, 5, 7, 9 }, the intersection of A and B, written as A ∩ B = { 3, 5, 9 }
The complement of a set is the difference of a set and the Universal set. Mathematically is can be seen as U{1,2,3,a} - A{2,3} = A'{1,a}. In a Venn diagram if the Universal set is the whole picture then the complement is the space that is not in the Venn Diagram.
The difference of two sets is when one set has its elements subtracted from the other. This means there is a directionality to it, so sets A-B ≠ B-A
.
Say we have the sets A={0,1,3,5,7,9}
and B={0,2,3,4,8,9}
. To get the difference of one set from the other, you go through your first set, look at its first term, and check if it exists in the second set. If it does not, the term will exist in the set difference, otherwise it will not. The difference of set A minus set B is A-B={1,5,7}
, while the difference of set B minus set A is B-A={2,4,8}
.
Disjoint in relation to set logic is when you are given two sets that do not share anything in common at all. Here is a simple example. you have a set A that consists of elements 1,2,3,4 and a set B that consists of elements 5,6,7,8. The two sets do not have any of the same elements thus the two sets are disjoint.
Here is also an example of two sets that are not disjoint. you are given set A which consists of 1,2,3,4 and set B which consists of 3,4,5,6. Because the two sets contain some of the same elements the sets are not disjoint.
I found that displaying an example of disjoint sets was the easiest out of all the set logic. Instead of having two circles overlapping, you have two circles separated there for the sets are disjoint (not connected/share similar elements).
When you are creating your disjoint function use the following as inspiration.
int disjointSets(int *set1, int size1, int *set2, int size2) { // Iterate through set 1 for (int i = 0; i < size1; i++) { // Check if the current element of set 1 is in set 2 for (int j = 0; j < size2; j++) { if (set1[i] == set2[j]) { return 0; // Not disjoint because the two sets have a common element } } } return 1; // Disjoint because the two sets do not have a common element }
To be successful in this project, the following criteria (or their equivalent) must be met:
Let's say you have completed work on the project, and are ready to submit, you would do the following:
lab46:~/src/SEMESTER/DESIG/PROJECT$ submit DESIG PROJECT file1 file2 file3 ... fileN
You should get some sort of confirmation indicating successful submission if all went according to plan. If not, check for typos and or locational mismatches.
I'll be evaluating the project based on the following criteria:
208:set0:final tally of results (208/208) *:set0:functional program showing operations [104/104] *:set0:implements and utilizes the set operations [104/104]