#include <stdio.h>
#include <math.h>

/* --------------------------------*/


/* --------------------------------*/


int main(void)
{
	double xnull,  schrittweite, xaktuell, diffquot, exakt;
	unsigned potenz=1, zaehler=0;
 
	printf("Dieses Programm versucht, die Exponentialfunktion\n  x->exp(x) zu differenzieren.\n\
Dieses Programm verwendet symmetrische Differenzenquotienten.\n\
Fuer welchen Punkt x_0 sollen wir Differenzenquotienten berechnen?\n\
Bitte geben Sie Ihren Punkt ein: "); 
 
	scanf("%lf",&xnull);
     
	exakt=exp(xnull);
     
	printf("\nDer 'exakte' Wert der Ableitung in %lf lautet:\n %.15lf \n\n",
	xnull, exakt);
     
	printf("Schrittweite        Differentialquotient      Fehler\n");      
     
	for(zaehler=1; zaehler<=20; zaehler++)
	{
		potenz=potenz*10;
		schrittweite=1/(double)(potenz);
	
		diffquot=0.5*potenz*(exp(xnull+schrittweite)-exp(xnull-schrittweite));
	
		printf("       10^(-%2u)        %.15lf      %.15lf \n", zaehler, diffquot, fabs(diffquot-exakt)); 

	
	}
   
	return(0);
  
}

