Всем привет!
Друг попросил помочь написать программу решения ДУ в С++. Задана формула dy/dx=x^2. Надо найти значение у в точке х1=1. Начальные условия тоже даны.
При просмотре действия написанной программы столкнулся с тем, что при шаге h=0.1 программа выдает x=1.000000 y=1.285000.
Самое интересное начинается если я задаю h=0.01.
Тем самым увеличиваю точность.
Тогда
x=1.009999 y=1.338350.
Так вот, хочу спросить у продвинутых людей в С++ как-же так получается, если я ограничиваюсь с помощью условного оператора (x<1).

.................................................. .................
Вот текст.
#include <stdio.h>
#include <conio.h>
#include <math.h>
main()
{
float x,y,h,x0,y0,x1;
clrscr();
printf("x0=");
scanf("%f",&x0);
printf("y0=");
scanf("%f",&y0);
printf("x1=");
scanf("%f",&x1);
printf("h=");
scanf("%f",&h);
x=x0; y=y0;
s1:
if (x<x1)
{
y=y+h*(pow(x,2));
x=x+h;
goto s1;
}
printf("x=%f\n",x);
printf("y=%f",y);
getch();
}
................................................
Заранее спасибо!