    #include <cassert>

    //
    //  The assert macro provides an easy to use debugging tool.  You place assert
    //  statements at points where you expect some condition to be true.  It seems
    //  that conditions want to defy your expectations a lot.  Getting a message
    //  from the computer at the earliest point helps.
    //
    //  If you are pretty sure that n should be a positive number <= 100 use this
    //
        assert ( n > 0 && n <= 100 );

    //
    //  Define NDEBUG either in the code with #define NDEBUG or when compiling to
    //  disable the assert macros.  The effect is like the macro wasn't there.
    //  There is no time wasted.
    //
    //  g++ -DNDEBUG program.cpp
    //