第6回
2010年 10月号
|
10を作れ!(その2)〜四則演算のパターンを洗い出す〜
式の構造を解析する
|
|
|
操作方法Step1 式の入力四則演算のみからなる式の数字の部分を□に置き換えた型を、マウスで入力します。入力できる型は50文字以内です。入力時には、カッコのネスト等の形式が正しい状態が保たれるよう、入力できる文字のボタンのみがアクティブになります。 Step2 演算の優先順位の解析入力された式の演算の優先順位を解析する過程を観察します。 ・カッコの縮約「□-((□-□))」のように、同じ範囲を囲むカッコが重複しているものを縮約します。 ・乗除演算順の解析乗算・除算演算子のみに着目し、カッコを用いて演算の優先順位を明示します。その際、全ての乗算・除算演算子は、それが結んだ2項を囲むカッコと対応づけられるようにします。乗算・除算演算子を先に処理することで、四則演算の優先順位のルールが守られます。 ・加減演算順の解析加算・減算演算子のみに着目し、カッコを用いて演算の優先順位を明示します。その際、全ての加算・減算演算子は、それが結んだ2項を囲むカッコと対応づけられるようにします。ここまでの処理の結果、全てのカッコのペアと全ての演算子は1対1に対応することになります。 Step3 式を標準化された構造に変換式を加減演算子と乗除演算子のみからなる構造に変換する過程を観察します。この部分のアルゴリズムは、連載の先月号(2010年9月号/第5回)で説明しています。画面では、処理中の部分が一旦下のワークエリアに抜き出され(その際、元の式では抜き出した部分を★で示します)、その領域の最上位にある演算子を加減演算子または乗除演算子の一部とみなして構造が組み替えられた後に、元の式に戻されます。最終的に得られた式では、1つの加減演算子または乗除演算子が【】と対応しています。 |