profile
Размещено 5 лет назад по предмету Информатика от den4iktv

У меня есть рабочий код на паскале

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 <iostream>
#include <cmath>

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 шаге условие должно быть соблюденино

В чем ошибка и как ее исправить?

  1. Ответ на вопрос
    Ответ на вопрос дан Аккаунт удален
    #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);
    }
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.