Ошибка 205 Floating point overflow - Turbo Pascal
Формулировка задачи:
Разбираюсь дальше с Паскалем... Сейчас возникла очередная проблемка с ним, т.к. при подсчетах паскаль прерывает работу из-за ошибки #205 Floating point overflow. Хотя помойму все правильно в решении задачи, но не понимаю из-за чего проблемы... Ошибка 205 обозначает проблему с переполнением операции с плавающей точкой.
Сопсна условие задачи расположено внизу поста...
Задачу решаю через итерационный цикл (а по другому-то и не нельзя )
Мое решение:
Листинг программы
- Var
- m,i:integer;
- y,x,xprev,p,pprev,Sum,Eps,two: double;
- Begin
- xprev:=1;
- pprev:=2;
- two:=2;
- writeln('Введите количество элементов суммы: ');
- readln(m);
- writeln('Введите точность вычислений: ');
- readln(Eps);
- //Подсчет функции с заданной точностью
- repeat
- i:=0;
- sum:=0;
- //подсчет суммы элементов
- while i<=m do
- begin
- x:=0.5*(xprev+pprev);
- p:=xprev*pprev;
- two:=two*2;
- sum:=sum+two*(sqr(x)-sqr(p));
- xprev:=x;
- pprev:=p;
- i:=i+1;
- end;
- //функция равна...
- y:=1-0.5*sum;
- until Abs(sqr(x)-sqr(p))<=Eps;
- writeln('Значение y: ');
- writeln(y);
- readln;
- End.
Решение задачи: «Ошибка 205 Floating point overflow»
textual
Листинг программы
- until Abs(sqr(x)-sqr(p))>Eps;
Объяснение кода листинга программы
- В цикле
until
выполняется условиеAbs(sqr(x)-sqr(p))>Eps
, где:x
иp
- это переменные, значения которых в данный момент вычисляются.sqr
- функция возведения в квадрат.abs
- функция абсолютного значения.Eps
- это константа, значение которой задает точность вычислений.
- Цикл будет выполняться до тех пор, пока абсолютное значение разности квадратов
x
иp
не станет больше заданной точностиEps
. - Выражение
Abs(sqr(x)-sqr(p))
вычисляет квадрат разности квадратовx
иp
. - Функция
abs
возвращает абсолютное значение числа, игнорируя его знак. - Функция
sqr
возводит число в квадрат. - Оператор
>=
проверяет, что разность квадратовx
иp
больше заданной точностиEps
. - Если условие истинно, цикл продолжается, иначе выходим из него.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д