CS193P - スタンフォード大学の IOS プログラミング コースの課題 2 に取り組んでいます。私が疑問に思っていたことの 1 つは、calculatorBrain が格納されたプログラム (オペランドと演算の配列またはスタックであるプログラム) をどのように受け入れて実行できるかということです。
では、次の計算を実行したいとしましょう: 2, 3, 4, +, *
これを計算機に入力すると、次のようになります。
2 3 4 は一度に 1 つずつスタックにプッシュされ、それぞれに対して runProgram が呼び出されます。これは単にスタックから数値をポップし、スタックにプッシュされる値を返します。
+ を押すと、runProgram はこれをポップし、上位 2 つの項目を追加する必要があることを確認し、結果をスタックにプッシュします。スタックには現在 2、7 が含まれています。* を押すと、スタックに 14 が含まれるようになります。
しかし、(2, 3, 4, +, ) を含む配列を*
脳に渡す方法がわかりません (インストラクターは後で、プログラムを runProgram クラスメソッドに渡すだけで結果を取得できると言っています。つまり、runProgram は最初に一番上のオペランドを実行しよう*
とします。つまり、これを実行するために、スタックから次の 2 つのオブジェクトを取得し、それらを乗算して、結果をスタックにプッシュしようとします。これらの 2 つのオブジェクトは「+」と「4」であり、機能しません。
今、インストラクターは私よりもずっと長くこれを行ってきました.私は何かが欠けていると思いますが、何がわからない.
何か案は?