Простой итерационный цикл: При вычислении компилятор выдает NAN - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Привет, спасибо, что заинтересовались темой =) У меня проблема возникла... задачка вроде простая, - уравнение итерации вроде бы все правильно написал, но при вычислении компилятор выдает NAN. Да, знаю, что это может быть при попытке деления на ноль и т.д., но у меня нет деления на ноль. Вот код...

Решение задачи: «Простой итерационный цикл: При вычислении компилятор выдает NAN»

textual
Листинг программы
uses crt;
var x,e,s,t:real;
    n:integer;
begin
clrscr;
x:=0.75;
e:=0.01;
n:=1;
t:=x;
s:=t;
while abs(t)>e do
 begin
  n:=n+1;
  t:=-t*x*x/(2*n-2)/(2*n-1);
  s:=s+t;
 end;
writeln('S=',s:0:2);
writeln('Sinx=',sin(x):0:2);
readln
end.

Объяснение кода листинга программы

  1. В начале кода используются необходимые библиотеки и объявляются переменные: x, e, s, t, n.
  2. Строка clrscr; очищает экран.
  3. Переменная x инициализируется значением 0.75.
  4. Переменная e инициализируется значением 0.01.
  5. Переменная n инициализируется значением 1.
  6. Переменная t инициализируется значением x.
  7. Переменная s инициализируется значением t.
  8. Запускается цикл while, который выполняется до тех пор, пока abs(t) больше e.
  9. Внутри цикла переменная n увеличивается на 1.
  10. Переменная t вычисляется как -txx/(2n-2)/(2n-1).
  11. Переменная s увеличивается на значение t.
  12. Цикл while завершается, когда abs(t) становится меньше или равно e.
  13. Выводится значение переменной s с точностью до двух знаков после запятой.
  14. Выводится значение функции sin(x) с точностью до двух знаков после запятой.
  15. Вызывается функция readln(), чтобы пользователь мог прочитать ввод.
  16. Программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы