crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Функция от одного аргумента возвращает разные значения ?
Белый пони
  опции профиля:
сообщение 5.3.2011, 11:07
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 27.1.2011
Пользователь №: 2373

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте!
Совсем не могу понять как так.

вот функция fX®:
double MainWidget::fX( double r)
{
double f = sqrt( r*r + l13*l13 - 2 * r * l13 * cos( beta23 - falpha(r)) ) - r*sqI13;
return f;
}

double MainWidget::falpha( double r)
{
double a = acos ( (r*r + l12*l12 - r*r*I1/I2) / (2 * r * l12) );
if( isnan(a)) a = 0;
return a;
}


При этом такой кусок кода:
void MainWidget::toFile()
{
double hi;
...

std::cerr << " hi = " << hi << std::endl;
std::cerr << "fX ( "<< hi << " ) = " << fX( hi ) << std::endl;
hi = 233.623;
std::cerr << "fX ( "<< hi << " ) = " << fX( hi ) << std::endl;
}


выдаёт такой результат:
hi = 233.623
fX ( 233.623 ) = 34.367
fX ( 233.623 ) = -71.3663


Как так получается Я не понимаю каких-нибудь основ С++ ?

(остальные переменные - l12, l13, beta23, I1, I2, sqI13 - члены класса MainWidget, вычисляемые один раз в конструкторе)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.4.2024, 12:58