Кто может подсказать? - страница 2

 
liza >>:

Вот функция которая дает эту ошибку.

Так ведь красивее

string k1lo(double n, int t)
{
   int x = 1, l = 1;
   double sum1 = 0, sum2 = 0;
   string num;

   for(int i = n; i > 0; i--)
   {
      sum1 += (iLow(Symbol(),t,i))*(fi1(x,n));
      x++;
   }
 
   for(int j = n; j > 0; j--)
   {
      sum2 += MathPow(fi1(l,n),2); // тут этот кусок -- fi1(l,n) возвращает в определенный момент или 0 или число меньше 0. Проверьте алгоритм.
      l++;
   }

   num = DoubleToStr((sum1/sum2),9);
   return(num);
}  
 

Это система моделирования по Чебышеву.  

Не понимаю что такое поди.

 
liza писал(а) >>

Это система моделирования по Чебышеву.

Не понимаю что такое поди.

А ссылку на алгоритм можно увидеть.

 

Это кандидадская моей подруги.

Я не знаю как вставить текстовой документ, а прогу что я сделала прикреплю.

Файлы:
chebyshev.mq4  19 kb
 
Если подскажете как прикрепить текстовой докумет, то пояснения тоже увидите.
 
liza >>:
Если подскажете как прикрепить текстовой докумет, то пояснения тоже увидите.

Заархивировать. И прикрепить архив.

Разбираться по коду гиблый номер. Могу предположить, что если поменять нисходящий цикл на восходящий в функции, она заработает, но правильно ли....

 

А все таки зачем все время перевод double в string и наоборот.

Значения то хранятся с достаточной точностью. можно просто округлять до нужного знака (если конечно нужно).

 
TheXpert >>:

Заархивировать. И прикрепить архив.

Разбираться по коду гиблый номер. Могу предположить, что если поменять нисходящий цикл на восходящий в функции, она заработает, но правильно ли....

Попробовала ничего не изменяется.

 
Vinin >>:

А все таки зачем все время перевод double в string и наоборот.

Значения то хранятся с достаточной точностью. можно просто округлять до нужного знака (если конечно нужно).

Дело в том, что для того чтобы видеть более точный результат надо до 8-ми знаков после запятой, а double выдает только 4.

 
liza >>:

Дело в том, что для того чтобы видеть более точный результат надо до 8-ми знаков после запятой, а double выдает только 4.

Что за чушь?

4 знака выдает Print, эта функция неявно конвертирует double в строку с точностью 4 знака.

Функция DoubleToStr явно конвертирует double в строку с заданной точностью.


А самый точный вариант был есть и будет хранить и считать в double. Конвертация в строку используется для вывода чисел и практически всегда происходит с потерей данных.

Причина обращения: