#include #include double xlinks,xrechts,xmitte,flinks,frechts,fmitte,Genauigkeit; double f(double x){ return (x+1.0)*(x-2.0)*(x-10.0); }; int main(){ /*Einlesen von xlinks,xrechts,Genauigkeit*/ printf("xlinks="); scanf("%lf",&xlinks); printf("\nxrechts="); scanf("%lf",&xrechts); printf("\nGenauigkeit="); scanf("%lf",&Genauigkeit); printf("\n"); /*Notwendige Voraussetzungen Prüfen*/ flinks=f(xlinks); frechts=f(xrechts); if ((frechts*flinks)>0){ printf("# Ungültige Intervallgrenzen!\n"); exit(-1); }; xmitte=xlinks; fmitte=flinks; /*Bisektion*/ do { xmitte=0.5*(xrechts+xlinks); fmitte=f(xmitte); if ((fmitte*flinks)>0){ xlinks=xmitte; flinks=fmitte; } else { xrechts=xmitte; frechts=fmitte; }; printf("%lf\t%lf\t%lf\t%lf\n",xlinks,xrechts,fmitte,(xrechts-xlinks)); } while (fabs(fmitte)>Genauigkeit); /*Schluss*/ printf("# Fertig!\n"); return 0; };