(2) 
// function interface
double myexp(double x, double eps)


(3) 
// function definition
double myexp(double x, double eps)
{
  int n=0; // iteration number
  double member = 1; // current member - x^n/n!
  double sum = 0; // current value of the series
   
// main approximation loop

  while (fabs(member) >= eps)
  {
    n = n + 1;
    sum = sum + member;
    member = (member*x)/n
  }
return sum;
}

(4)
// C++ code to test myexp

#include<iostream>
using namespace std;

#include<math.h>

// function prototype
double myexp(double, double);

int main()
{
// variable declarations
  double argument;   // argument
  double error; // truncation error (value of the least significant series member)
  cout << "This program calculates function e^x  - please enter argument value x = ";
  cin >> argument; cout << endl;
  cout << "Please enter truncation error eps = ";
  cin >> error; cout << endl;

// output results
    cout << "The approximate value of e^x is " << myexp(argument,error) << endl;
return 0;
} // end main()