Вот программа на языке C:
При вводе шага dx=0.1 в цикле возникает погрешность после 27й итерации...
От чего это, и как решить?
#include <stdio.h>
#include <stdlib.h>
int main(){
float a, b, c, result, dx, x1, x2, i;
printf("Enter A\n");
scanf("%f", &a);
printf("Enter B\n");
scanf("%f", &b);
printf("Enter C\n");
scanf("%f", &c);
printf("Enter X1\n");//X1 начальный
scanf("%f", &x1);
printf("Enter X2\n");//X2 конечный
scanf("%f", &x2);
printf("Enter step - dx\n");
scanf("%f", &dx);
printf("\nA = %f\n", a);
printf("B = %f\n", b);
printf("C = %f\n", c);
printf("X1 = %f\n", x1);
printf("X2 = %f\n\n", x2);
printf("Step dx = %f\n\n", dx);
if(x1 < 0 && b != 0){
printf("X1:\t\tResult:\n\n");
for(; x1 <= x2; x1+=dx){
result = a*x1*x1+b;
printf("%f\t%f\n", x1, result);
}
}
else if(x1 > 0 && b == 0){
printf("X1:\t\tResult:\n\n");
for(; x1 <= x2; x1+=dx){
result = (x1 - a)/(x1 - b);
printf("%f\t%f\n", x1, result);
}
}
else{
printf("X1:\t\tResult:\n\n");
for(; x1 <= x2; x1+=dx){
result = x1/c;
printf("%f\t%f\n", x1, result);
}
}
return 0;
}