2014-04-08 2 views
-1

Я довольно новичок в C++, и я не знаю, как решить следующую проблему. У меня есть рабочий код, который находит корень функции с использованием метода Brent. Меня интересует вопрос о том, как перебирать разные значения параметров функции, принимая ту же спецификацию.Зацикливание параметров определенной функции в C++

Вот более простой пример. Я вызываю функцию, вызывающую другую определенную функцию AFunction.

#include <stdio.h> 
#include <math.h> 
double x1,x2,res,r; 


// Simple Function 
double AFunction(double x) { 
    return ((x)+2); 
} 


// A second function that call the first one 


double AddF(double x1, double x2, double *res) 
{ 
double result=AFunction(x1)+AFunction(x2);  
return (result); 
} 

int main() { 
    x1=1.0; 
    x2=2.0; 
    r=AFunction(x1,x2,&res); 

} 

То, что я заинтересован в это цикле по параметру (ов) определенной функции, принимая во внимание тот факт, что я хотел бы иметь только прекращение функции в зависимости от х. То есть, рассмотрим функцию, определяемые ниже:

// Simple Function 
double AFunction(double x) { 
    return ((x)+a); 
} 

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

+0

'двойной результат, AA, BB, CC, DD, EE, FA, FB, FC, Tol1, PP, QQ, RR, SS, хт;' Я ненавижу все эти имена переменных. Попробуйте изменить include на '#include" brent_function.h "или подобное. – tgmath

+3

Можете ли вы, возможно, обрезать это на минимальный пример своей проблемы? –

+0

Не совсем понятно, что вы спрашиваете ... что вы подразумеваете под «петлей над функцией»? –

ответ

0

Если вы имеете в виду переключение параметров и вызов функции, вам необходимо передать параметры в контейнере прихода или использовать список переменной длины.

double AddF(std::list<double> const& params) const 
{ 
    double result = 0; 
    for(auto& d : params) result += AFunction(d);  
    return result; 
} 
+0

Это не я искал. Гораздо проще было передать массив функции, пройдя весь массив в основной части программы C. – user3510226

+0

хорошо это точно, прекрасно вписавшись в функцию – 4pie0

Смежные вопросы