関数calculate_formula_functions マニュアル

(The documentation of function calculate_formula_functions)

Last Update: 2021/12/1


◆機能・用途(Purpose)

数式を表す文字列中の「関数名(数値)」となっている部分の計算を実行し、 計算結果の数値を表す文字列で置換する。
Conduct calculation of a partial string of a form “function name (numerical value)”, in a string that represents a mathematical formula, and replace the partial string by a string that represents the resultant numerical value.


◆形式(Format)

#include <formula.h>
inline char ∗calculate_formula_functions (char ∗formula,char ∗pattern)


◆引数(Arguments)

formula 数式を表す文字列。
A string that represents a mathematical formula.
pattern 引数formulaが表す文字列の構造。 関数analyze_formulaに引数formulaを渡して得られる戻り値を使用する。
The structure of a string represented by argument formula. Use the return value of function analyze_formula to which formula is used as an argument.


◆戻り値(Return value)



◆使用例1(Example 1)

char formula1[]="-1.2∗sin(s)+3.4∗cos(-s)∗5.6";
char ∗formula2=replace_variable_with_value(formula1,s,12.3);
char ∗structure=analyze_formula(formula2);
char ∗formula3=calculate_formula_functions(formula2,structure);

この例では
formula2="-1.2∗sin(1.230000e+01)+3.4∗cos(-1.230000e+01)∗5.6"
となり、このsin(1.230000e+01)の計算がこの関数内で行われて
formula3="-1.2∗2.130304e-01+3.4∗cos(-1.230000e+01)∗5.6"
となる。
In this example,
formula2="-1.2∗sin(1.230000e+01)+3.4∗cos(-1.230000e+01)∗5.6"
and then the calculation of sin(1.230000e+01) is conducted in this function, resulting in:
formula3="-1.2∗2.130304e-01+3.4∗cos(-1.230000e+01)∗5.6"


◆使用例2(Example 2)

char formula1[]="-1.2∗sin(2.0∗s)+3.4∗cos(-s)∗5.6";
char ∗formula2=replace_variable_with_value(formula1,s,12.3);
char ∗structure=analyze_formula(formula2);
char ∗formula3=calculate_formula_functions(formula2,structure);

この例では
formula2="-1.2∗sin(2.0∗1.230000e+01)+3.4∗cos(-1.230000e+01)"5.6"
となり、sin(2.0∗1.230000e+01)は 引数が1つの数値になっていないのでスキップされる。 その次のcos(-1.230000e+01)の計算がこの関数内で行われて
formula3="-1.2∗sin(2.0∗1.230000e+01)+3.4∗9.770456e-01∗5.6"
となる。
In this example,
formula2="-1.2∗sin(2.0∗1.230000e+01)+3.4∗cos(-1.230000e+01)"5.6"
and because the argument of sin(2.0∗1.230000e+01) is not a single numerical value, the calculation of this part is skipped. Then the calculation of cos(-1.230000e+01) is conducted in this function, resulting in:
formula3="-1.2∗sin(2.0∗1.230000e+01)+3.4∗9.770456e-01∗5.6"


◆補足(Additional remarks)

関数名としてはsin,cosのみサポートされている。 これらの関数において角度は°単位の値として扱われる。
As the function names, only sin and cos are supported. In these functions, the angle is assumed to have a unit of degrees.