1.15. C and C++ΒΆ
Now for the most famous program of all time! This program is often the first program someone will write in a new language. Here it is presented in the original C language!
You can also have C++ code in an activecode.
Before you keep reading...
Making great stuff takes time and $$. If you appreciate the book you are reading now and want to keep quality materials free for other students please consider a donation to Runestone Academy. We ask that you consider a $10 donation, but if you can give more thats great, if $10 is too much for your budget we would be happy with whatever you can afford as a show of support.
.. activecode:: lc2
:language: cpp
:stdin: 100
:compileargs: ['-std=c++11', '-Wall', '-Wpedantic']
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << endl; cout << "Welcome to C++ Programming" << endl;
}
1.16. Unit Tests in C++ΒΆ
You can also have hidden unit tests in C++ using catch.hpp. Place the unit tests after β====β.
Write a function to compute the factorial of a. number
.. activecode:: cpp_units
:language: cpp
:autograde: unittest
Write a function to compute the factorial of a. number
~~~~
unsigned int Factorial( unsigned int number ) {
return number <= 1 ? number : Factorial(number-1)*number;
}
====
#define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one cpp file
#include <catch.hpp>
TEST_CASE( "Factorials are computed", "[factorial]" ) {
REQUIRE( Factorial(1) == 1 );
REQUIRE( Factorial(2) == 2 );
REQUIRE( Factorial(3) == 6 );
REQUIRE( Factorial(10) == 3628800 );
}
TEST_CASE( "Factorial of 0", "[fact0]" ) {
REQUIRE( Factorial(0) == 1);
}