-2

入力のあるファイルが与えられた場合:

Formula: m = (y - c) / x
Formula: m = y + c^2

この場合、2つの答えになるように、Javaで各式を実装してmを解決したいと考えています。各数式を個別にコーディングすると、必要なすべての数式に対して時間がかかりすぎるため、これを行う必要があります。

これまでのところ、以下のコードは各数式を検出して分離するだけです。この質問のために、ユーザー入力も削除しました。

int y = 8;
int c = 2;
int x = 2;

    try{
       FileInputStream fstream = new FileInputStream("Filename");

        DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String strLine;

        while((strLine = br.readLine()) != null){
            if(strLine.startsWith("Formula")){
                String standAloneFormula = strLine.replace("Formula: ", "");
                System.out.println(standAloneFormula);
            }
        }
    }
    catch(Exception e){
        System.out.print(e);

私が抱えている主な問題は、コードにアクセスしてから整数値を文字列値に適用することです。この場合、mを解く最も簡単な方法は何でしょうか?

アイデア、リンク、または関連するコードを歓迎します。

よろしく。

4

1 に答える 1

1

複合パターンを使用して、方程式の単純なオブジェクト モデルを作成してみてください。すべての入力行を、オペランドとして他の式を含む可能性のある単一の式に分割できます。calculate(HashMap<String, Integer> values)次に、すべてのクラスでメソッドを定義できます。ここvaluesで、 は計算で発生する可能性のあるすべての変数の定義にすぎません。メソッドを再帰的に呼び出すことにより、最終的に結果を取得する必要があります。

サポートしたい数学演算ごとに 1 つのクラスが必要です。たとえば、加算、減算、否定などです。

文字列を解析してオブジェクト階層を構築することは、実際には最も難しい作業です。ポーランド語表記法またはより解析しやすいものを使用すると、はるかに簡単になります。

全体として、自分で何かをコーディングしようとするよりも、数学の問題を解決するのにより適したツールを使用することをお勧めします。ひょっとしたらエクセルも役に立つかもしれません。

于 2013-01-14T11:47:48.657 に答える