# Problem Solving: Cross Product of Sets

Learn to create a program that computes the cross-product of sets.

## We'll cover the following

In this lesson, we’ll compute the cross product of two sets where the **cross product** of `A`

and `B`

is the set of all the possible `A`

= {1, 4, 7} and `B`

= {5, 8}, then `A x B`

= {(1,5), (1,8), (4,5), (4,8), (7,5), (7,8)}.

**Instruction:** Use the following playground to write the complete code for the task in this lesson.

We have already added code for loading, sorting, and displaying sets, so you do not need to include that.

/* The code for loading, sorting, and displaying sets has alreadybeen implemented, so we can now concentrate solely on calculatingthe cross product.*/{/*Variables A, sizeA, B, sizeB have been declaredsets are available, and both are sorted now.*/// Task 1: AXBcout << "\nA x B: = {\n";// Write code for AXBcout << "\n\t\t}";// Task 1: BXAcout << "\nB x A: = {\n";// Write code for BXAcout << "\n\t\t}";}

## Cross product

**Task:** Print the cross product of sets A and B on the console.

Your program should print the following:

```
A = {2, 3, 4, 5, 10}
B = {2, 3, 4, 7, 8, 10}
A x B: = {
(2, 2), (2, 3), (2, 4), (2, 7), (2, 8), (2, 10),
(3, 2), (3, 3), (3, 4), (3, 7), (3, 8), (3, 10),
(4, 2), (4, 3), (4, 4), (4, 7), (4, 8), (4, 10),
(5, 2), (5, 3), (5, 4), (5, 7), (5, 8), (5, 10),
(10, 2), (10, 3), (10, 4), (10, 7), (10, 8), (10, 10)
}
```

The idea is the following:

- Print each element of set
`A`

with all the elements of set`B`

.

Let’s write down the code:

cout << "\nA x B: = {\n";for (int ai = 0; ai <= sizeA-1; ai++){cout << "\t\t\t";for (int bi = 0; bi <= sizeB - 1; bi++){cout << "(" << A[ai] << ", " << B[bi] << ")";// This check will not print comma after last pairif (bi != (sizeB - 1) || ai != (sizeA - 1))cout << ", ";}cout << endl;}

**Lines 1–14:**We use the nested loop to print the result of sets`A`

and`B`

on a console. The nested loop will print each element of set`A`

with all the elements of set`B`

.**Line 10:**We include a condition under which the comma after the last pair of the cross product will not be printed.

**Instruction:** Add the above computing cross product code in the playground to complete the entire lesson.

### Exercise: B x A

Write the code in the above playground for BxA. The output should be the following.

```
A = {2, 3, 4, 5, 10}
B = {2, 3, 4}
B x A: = {
(2, 2), (2, 3), (2, 4), (2, 5), (2, 10),
(3, 2), (3, 3), (3, 4), (3, 3), (3, 10),
(4, 2), (4, 3), (4, 4), (4, 5), (4, 10)
}
```