Question
C++ program In the mathematical theory of sets, a set is defined as a collection of distinct items of the same type. In some programming
C++ program
In the mathematical theory of sets, a set is defined as a collection of distinct items of the same type. In some programming languages, sets are built-in data types; unfortunately, this is not the case in C++. However, we can simulate a set using a one-dimensional array.
Some operations can be performed on sets. We will consider three(3) of them: union, intersection and difference. These are binary operations requiring two sets as operands. The union of two sets, A and B, is a set that contains all elements in both A and B. The intersection of two sets, A and B, is a set that contains elements common to both A and B. The difference of two sets, A and B, is a set that contains only the elements in A but not in B and excluding the common elements in A and B.
For example, if A and B are two sets of integers defined as A = {5, 7, 8, 10} and B = {3, 9, 10}, then their union is the set {3, 5, 7, 8, 9, 10}, their intersection is the set {10}, their difference of A and B ( A - B) is the set {5, 7, 8}.
Write a program that computes the union, intersection, and difference of two sets stored in two one-dimensional arrays. Populate the arrays from the following input files:
inputA.dat
0 1 -3 5 -11 6 8 9 11 17 15 7 4 12
inputB.dat
0 -1 3 7 -6 16 5 11 12 4 21 13
The output should be displayed on screen and in an output file. Prompt user for file names. No duplicates are allowed in union, intersection or difference.
The following functions must be used:
void readfile_array(ifstream& a, ifstream& b, int arraya[], int& asize, int arrayb[], int& bsize);
void printarray(int array[], int size, ofstream& o);
int diff (int a[], int b[], int dif[], int asize, int bsize);
int duplicates (int array[], int d[], int size);
int intersection (int a[], int b[], int asize, int bsize, int inter[]);
int arrayunion (int a[], int b[], int asize, int bsize, int aunions[]);
void sort (int array[], int n);
SAMPLE OUTPUT:
Enter filenames=>inputA.dat
inputB.dat
out.dat
Array Elements in File A
0 1 -3 5 -11 6 8 9 11 17 15 7 4 12
Array Elements in File B
0 -1 3 7 -6 16 5 11 12 4 21 13
Sorted ArrayA
-11 -3 0 1 4 5 6 7 8 9 11 12 15 17
Sorted ArrayB
-6 -1 0 3 4 5 7 11 12 13 16 21
Difference from ArrayA and ArrayB
-11 -3 1 6 8 9 15 17
Number of elements in intersection = 6
0 4 5 7 11 12
Number of elements in union = 26
-6 -1 0 3 4 5 7 11 12 13 16 21 -11 -3 0 1 4 5 6 7 8 9 11 12 15 17
Sorted intersection
0 4 5 7 11 12
Sorted union
-11 -6 -3 -1 0 0 1 3 4 4 5 5 6 7 7 8 9 11 11 12 12 13 15 16 17 21
The Intersection of A and B (no duplicates)
0 4 5 7 11 12
The Union of A and B(no duplicates)
-11 -6 -3 -1 0 1 3 4 5 6 7 8 9 11 12 13 15 16 17 21
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started