Есть ответ 👍

Уменя есть рабочий код на паскале var a, k, s, b, x1, x2, y1, y2, h: real; n, j: integer; begin a : = -1; b : = 1; n : = 2; repeat k : = s; s : = 0; for j : = 1 to n do begin h : = (b - a) / n; x1 : = a + h * (j - 1); x2 : = x1 + h; y1 : = sqr(x1); y2 : = sqr(x2); s : = s + (y1*h + y2*h) / 2; end; n : = n + 1; if abs(s-k) < 0.01 then begin writeln(1); break; end; until n< 0; writeln(s); writeln(n); end. нужно перевести его в с++, вот что у меня получилось #include #include using namespace std; int main() { float a,b,h,x1,x2,y1,y2,k,s; int j,n; a=-1; b=1; n=1; s=0; do{ k=s; s=0; for(j=1; j< =n; j++) { h=(b-a)/n; x1=a+h*(j-1); x2=x1+h; y1=x1*x1; y2=x2*x2; s=s+(y1*h+y2*h)/2; } n++; cout< if (abs(s-k)< 0,01) break; } while(n> 0); cout< return(0); } проблема в том, что break срабатывает сразу же, проходя цикл do один раз, а затем выходит, хотя условие не соблюденино если 0.01 и abs использовать в отдельных переменных, а затем сравнить их, то цикл становится бесконечным, хотя на 8 шаге условие должно быть соблюденино в чем ошибка и как ее исправить?

125
332
Посмотреть ответы 2

Ответы на вопрос:


Не правильно используешь cout
lenatolkina
4,7(70 оценок)

Объем cd диска 700мб=716800 кбайт 716800/350=2048 ответ: 2048 учебников 

Популярно: Информатика