Помощь - Поиск - Пользователи - Календарь
Полная версия: помогите найти ошибку
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Aulendil
Прога должна вычислять сумму с точностью е. сумма((-1)^k*(x/2)^2(k+1))/((k+1)!)^2
e-точность должна быть любой, реально же, если ввести е<1 прога зависает .
Код
Program L;
             var  b,s,e,x: real;
             k:integer;
          begin
             writeln('input x<>0, e>0');
             readln(x,e);
             k:=0;
             s:=0;
           repeat
            k:=k+1;
            b:=(-(sqr(x/2)+sqr(k+1)));
            s:=s+b;
           until abs(b)<e;
           writeln('s=',s);
            readln;
            end.
volvo
Цитата
точность должна быть любой, реально же, если ввести е<1 прога зависает .
Правильно... Потому что вот так:
Код
b:=(-(sqr(x/2)+sqr(k+1)));
модуль каждого последующего элемента больше модуля предыдущего, следовательно условие выхода из цикла не выполнится никогда. Ищи по форуму, как делать правильно... Надоело делать одно и то же... Только сегодня твой вопрос - пятый на эту тему...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.