Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Ошибка при вычислении синуса


Автор: doctor2k 24.11.2010, 18:17
Здравствуйте.
Есть задача на Паскале, нужно посчитать значение функции на заданном интервале с определённым шагом. Результаты вывсети таблицей. Всё работает, НО: при вводе некоторых значений выскакивает ошибка. Окошко сразу пропадает, ошибку увидеть очень сложно. Насколько я успел разглядеть, там "Runtime Error 207" или 297, не могу точно сказать. В общем, вот моя реализация программы:

Код

program Task_1;

var
  nach, kon, shag, b, x: real;
  i: integer;
begin
  Write('Vvedite nachalnoe znachenie: ');
  ReadLn(nach);
  Write('Vvedite shag: ');
  ReadLn(shag);
  kon := 15.4;
  x := nach;
  while (x <= kon) do
    begin
      b := sqrt(2.1*sqr(x) + sin(1/x)) - 1.3*ln(2*x);
      WriteLn('X = ', x:8:3, ' | B = ', b:8:3);
      x := x + shag;
    end;
  ReadLn;
end.


Пробовал в строке с формулой закомменчивать некоторые части, и выяснил, что косячит вычисление синуса. Например, ввожу начальное значение = 0.1 и шаг = 1, выскакивает ошибка. Ввожу начальное значение = 0.6, шаг = 1, всё работает. Помогите пожалуйста разобраться. Заранее благодарю =)

Автор: ~FoX~ 24.11.2010, 22:26
1. Alt+F5
2. Не умеет поскавлевый sqrt из отрицательных чисел корень извлекать...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)