(E) Cube¶
Goal: I will take an even closer look at the behavior of integers in C++. I will learn to detect overflow.
Instructions: In the previous two exercises you were provided with a ready-made code template and a project file in Git repository. You will not receive a ready code template in all of the exercises on this course. Instead, you should also be able to create a new project in Qt Creator.
In this assignment, you will create the project by yourself.
You need to save the project in the directory with
exactly the correct name in order to
allow the automatic evaluation system to find it when you submit
your solution to the course platform.
Save your project in the
directory student/02/cube
located in the data repository.
Please note that if you start by creating the project in Qt Creator
under the name cube
, Qt Creator will save the project
files in a directory called cube
defined in
the window Project Location
.
This means you won’t have to create a separate directory called
cube
under the directory student/02
.
Later on, the first paragraph of the assignment will tell you whether to use a template or create the project yourself, and what the directory should be called.
Assignment: Create a program that calculates the cube of a non-negative integer (or raises the integer to the third power) and prints the result or, if there is an overflow in the calculation, an error message.
Set int
as the type of the input and all of the other variables,
although it is sufficient that the program works with non-negative numbers.
The program should work like the examples below:
Enter a number: 2
The cube of 2 is 8.
Enter a number: 100000
Error! The cube of 100000 is not -1530494976.
Enter a number: 200000000
Error! The cube of 200000000 is not 134217728.
Tips for completing the assignment:
- The latter number in the error message (”is not …”)
is the result of the calculation performed
with variables of the type
int
. - C++ has no such operator as the Python’s operator
**
. The simplest way to calculate the cube is by performing two multiplications. - C++ does have the function
pow
, which you can use if you want to practice the use of the libraries. The function in question is located in the librarycmath
, which you have to include using the directiveinclude
. - C++ also has the operator
^
, but this should not be used here as it will not raise the integer to the higher power but instead perform a bitwise XOR operation. - As you can see in the third example run, with a big enough input value, the result of the calculation is not a negative but a positive number. Therefore, it is not enough for you to check whether the resulting number is positive. Think back to how your old math teacher told you to check your answers in a math test. You can use the same trick to check your results here.
A+ presents the exercise submission form here.