В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
XxNoNamexX
XxNoNamexX
01.08.2022 15:26 •  Информатика

Уменя есть рабочий код на паскале 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 шаге условие должно быть соблюденино в чем ошибка и как ее исправить?

Показать ответ
Ответ:
Irakli2007
Irakli2007
08.10.2020 03:20
#include <iostream>
#include <cmath>

using namespace std;

int main() {
   float a(-1),b(1),h,x1,x2,y1,y2,k,s(0);
   int n(2);
   do {
      k=s; s=0;
      for (int 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++;
      if (abs(s-k)<0.01) {
         cout << "1" << endl;
         break;
      }
   }
   while(n>=0);
   cout << s <<endl << n << endl;
   return(0);
}
0,0(0 оценок)
Ответ:
leloneltt
leloneltt
08.10.2020 03:20
Не правильно используешь cout
Уменя есть рабочий код на паскале var a, k, s, b, x1, x2, y1, y2, h: real; n, j: integer; begin a :
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота