void raise_salary(Employee& e, double by) // function definition
{ double new_salary = e.get_salary() * ( 1 + by / 100);
e.set_salary(new_salary);
}
int main()
{ Employee harry("Hacker, Harry", 45000.00);
raise_salary(harry, 5); // function call
cout << "New salary: " << harry.get_salary() << "\n";
return 0;
}
| parameter
                variable | reference
                parameter | constant
                reference
                parameter | 
| new variable,
              copying | reference to
              an
              existing variable | constant
              reference to a value | 
| input
              parameter | may be input
              and should
              be output
              parameter | input parameter | 
| can modify
              the
              parameter (bad style) | should modify the parameter | cannot modify the parameter | 
| can be bound
              to
              any expression | must be bound
              to
              the variable | can be bound to any expression | 
double future_value(double initial_balance, double p, int n)
{ double r = initial_balance * pow(1 + p / 100, n);
return r;
}
int main()
{ cout << "Please enter the interest rate in percent: ";
double r;
cin >> r;
double balance = future_value(10000, r, 10);
cout << "After 10 years the balance is" << balance
<< "\n";
return 0;
}
/**
Turns a number into its English name.
@param n a positive integer < 1000000 (e.g. 274)
@return the name of n (e.g. "two hundred seventy four")
*/
string int_name(int n);
/**
Turns a digit into its English name
@param n an integer between 1 and 9
@return the name of n ("one" ... "nine")
*/
string digit_name(int n);
/**
Turns a number between 10 and 19 into its English name.
@param n an integer between 10 and 19
@return the name of n ("ten"..."nineteen")
*/
string teen_name(int n);
/**
Gives the English name of a multiple of 10
@param n an integer between 2 and 9
@return the name of 10 * n ("twenty"..."ninety")
*/
string tens_name(int n);
string int_name(int n)
{ int c = n; /* the part that needs to be converted */
string r; /* the return value */
if (c >= 1000)
{ r = name of thousands in c + "thousand"
remove thousands from c
}
if (c >= 100)
{ r = r + name of hundreds in c + "hundreds"
remove hundreds from c
}
if (c >= 20)
{ r = r + name of tens in c
remove tens from c
}
if (c >= 10)
{ r = r + name of c
c = 0
}
if (c > 0)
r = r + name of c;
return r;
}
if (c >= 1000)
{ r = int_name(c / 1000) + " thousand";
c = c % 1000;
}
416""
416""16"four hundred"
| Syntax 5.6 : Assertions assert(expression); 
 | 
double future_value(double initial_balance, double p, int n)
{ assert(p >= 0);
assert(n >= 0);
return initial_balance * pow(1 + p / 100, n);
}
/**
Computes the value of an investment with compound interest.
@param initial_balance the initial value of the investment
@param p the interest rate in percent; must be >= 0
@param n the number of periods the investment is held; must be >= 0
@return the balance after n periods
*/