Problem F
Logic Functions
In addition to the normal boolean operators we use (such as or, ||, and, && and negation, !) there are also a number of additional operators that might be of interest.
Task
In this problem, your task is to write C++ functions that implement a few of them. You will give the output not as a return value, but instead update variables that are passed into your functions as references.
The functions you are to implement are described using truth tables, i.e. an exhaustive list of what the output should be for each input:
The exclusive or
Also abbreviated xor, with the mathematical notation $x \mathbin {\oplus } y$.
$x$ |
$y$ |
$x \mathbin {\oplus } y$ |
$T$ |
$T$ |
$F$ |
$T$ |
$F$ |
$T$ |
$F$ |
$T$ |
$T$ |
$F$ |
$F$ |
$F$ |
The implication
Given the notation $x \rightarrow y$.
$x$ |
$y$ |
$x \rightarrow y$ |
$T$ |
$T$ |
$T$ |
$T$ |
$F$ |
$F$ |
$F$ |
$T$ |
$T$ |
$F$ |
$F$ |
$T$ |
The equivalence
Given the notation $x \leftrightarrow y$.
$x$ |
$y$ |
$x \leftrightarrow y$ |
$T$ |
$T$ |
$T$ |
$T$ |
$F$ |
$F$ |
$F$ |
$T$ |
$F$ |
$F$ |
$F$ |
$T$ |
Template
You can download the template logicfunctions.cpp from the Attachments menu to implement your functions. When submitting your solution, only send in this file.
Testing
First, download the file logicfunctions.h from the Attachments menu and save it in the same place as your solution. That file calls your program with a fixed test case and reports whether it was correct.