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

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


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


int main(void)
{
	double untergrenze, obergrenze, summe1=0.0, summe2=0.0,  schrittweite, xaktuell;
	unsigned long stuetzstellen, zaehler;
 
	printf("Dieses Programm approximiert die Integrale\n von x->exp(x) und x->sin(x)\n\
 mittels der Mittelpunktregel auf von\nIhnen eingegebenen Intervallen und mittels\nder\
 von Ihnen eingegebenen Stuetzstellenzahl.\nBitte geben Sie die linke Intervallgrenze ein: "); 
 
	scanf("%lf",&untergrenze);
     
	printf("Bitte geben Sie die rechte Intervallgrenze ein: ");      
     
	scanf("%lf",&obergrenze);    

	printf("Bitte geben Sie die Zahl der Stuetzstellen ein: ");       
     
	scanf("%lu",&stuetzstellen); 
     
	schrittweite=(obergrenze-untergrenze)/(double)(stuetzstellen);
     
	xaktuell=untergrenze+0.5*schrittweite;

     
	for(zaehler=0; zaehler<stuetzstellen; zaehler++)
	{
		summe1=summe1+exp(xaktuell);
		summe2=summe2+sin(xaktuell);
		/* xaktuell=xaktuell+schrittweite;*/
		xaktuell=untergrenze+((double)(zaehler)+1.5)*schrittweite;
	}
     
	summe1=summe1*schrittweite;
	summe2=summe2*schrittweite;

     
	printf("\nNaeherungswert fuer das Integral von\nx->exp(x) auf [%lf, %lf],\n\
berechnet zum Einen mit Mittelpunktregel und %lu Stuetzstellen,\n\
zum Anderen mittels Stammfunktion:\n   %.15lf        %.15lf \n\n",
	untergrenze, obergrenze, stuetzstellen, summe1, (exp(obergrenze)-exp(untergrenze)));
     
	printf("Naeherungswert fuer das Integral von\nx->sin(x) auf [%lf, %lf],\n\
berechnet zum Einen mit Mittelpunktregel und %lu Stuetzstellen,\n\
zum Anderen mittels Stammfunktion:\n   %.15lf       %.15lf \n\n",
	untergrenze, obergrenze, stuetzstellen, summe2,  (cos(untergrenze)-cos(obergrenze)));
      
	return(0);
  
}

