関数analyze_formula マニュアル

(The documentation of function analyze_formula)

Last Update: 2021/12/1


◆機能・用途(Purpose)

数式を表す文字列の構造を解析する。
Analyze the structure of a string that represents a mathematical formula.


◆形式(Format)

#include <formula.h>
inline char ∗analyze_formula(const char ∗formula)


◆引数(Arguments)

formula 数式を表す文字列。
A string that represents a mathematical formula.


◆戻り値(Return value)

formulaと同じ長さの文字列で、 各\(i\)についてformula[i]と戻り値の第\(i\)要素が以下のように1対1で対応する。
A string that has the same length as formula, whose \(i\)th component for each \(i\) corresponds to the value of formula[i] as below.

formula[i] 戻り値の第\(i\)要素
The \(i\)th component of the return value
数値を表す部分文字列の最初の1文字。
The first character of a partial string that represents a numerical value.
′S′
数値を表す部分文字列の最後の1文字。
The last character of a partial string that represents a numerical value.
′E′
数値を表す部分文字列の最初でも最後でもない1文字。
A character of a partial string that represents a numerical value, other than the first and last characters.
′n′
演算子の′∗′または′/′。
An operator ′∗′ or ′/′.
′O′
演算子の′+′または′-′。 なお′-′が演算子ではなく符号として用いられている場合は は数値の一部と見なすのでここには含まれない。
An operater ′+′ or ′-′; if ′-′ is not used as an operater but is used as a sign, it is regarded as a part of a numerical value, and thus not included to this category.
′o′
関数名「sin」「cos」の一部。
A part of function names “sin” or “cos”.
′f′
′(′ ′(′
′)′ ′)′

上記のいずれにも該当しない文字または文字列パターンに遭遇した場合は エラー終了する。
If the program encounters a character or a pattern of string that do not meet either of the candidates above, the program finishes as an error.


◆使用例(Example)

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);

この例では
formula2="-1.2∗sin(1.230000e+01)+3.4∗cos(-1.230000e+01)∗5.6"
structure="SnnEOfff(SnnnnnnnnnnE)oSnEOfff(SnnnnnnnnnnnE)OSnE"
となる。
This example results in:
formula2="-1.2∗sin(1.230000e+01)+3.4∗cos(-1.230000e+01)∗5.6"
and
structure="SnnEOfff(SnnnnnnnnnnE)oSnEOfff(SnnnnnnnnnnnE)OSnE"