一部は、私は次の方法を使用することのために、ディスプレイ上で解決すべき存在である現在の方程式をプリントアウトしていますiOSの - スタンフォードCS193P 2011もちろん秋、割り当て2 descriptionOfProgram問題この割り当ての
+ (NSString *)descriptionOfTopOfStack:(NSMutableArray *)stack {
NSMutableString *programFragment = [NSMutableString stringWithString:@""];
id topOfStack = [stack lastObject];
if (topOfStack) [stack removeLastObject];
if ([topOfStack isKindOfClass:[NSNumber class]]) {
[programFragment appendFormat:@"%g", [topOfStack doubleValue]];
} else if ([topOfStack isKindOfClass:[NSString class]]) {
NSString *operation = topOfStack;
if ([self isDoubleOperandOperation:operation]) {
[programFragment appendFormat:@"(%@ %@ %@)", [self descriptionOfTopOfStack:stack], operation, [self descriptionOfTopOfStack:stack]];
} else if ([self isSingleOperandOperation:operation]) {
[programFragment appendFormat:@"%@(%@)", operation, [self descriptionOfTopOfStack:stack]];
} else if ([ self isNoOperandOperation:operation]) {
[programFragment appendFormat:@"%@", operation];
} else if ([self isVariable:operation]) {
[programFragment appendFormat:@"%@", operation];
}
}
return programFragment;
}
+ (NSString *)descriptionOfProgram:(id)program {
NSMutableArray *stack;
if ([program isKindOfClass:[NSArray class]]) {
stack = [program mutableCopy];
}
return [self descriptionOfTopOfStack:stack];
}
を私のプログラムは結果とすべてをうまく計算しますが、唯一の問題は、変数、数字、または単一オペランドの操作を入力すると、その最後の項目が表示されることです。配列は、他の再帰呼び出しが行われないので、どのようにしてスタック全体を通してプログラムを実行させ、出力を中断させることができないか考えていますか?
はい、それは事私の問題だが、私は継続する方法がわからないですが、私は私の出力 – 8vius
Aleeneを私のめちゃくちゃにせずに値を連結継続する方法を意味し、これは私が必要なものを私に与える必要があり、あなたの入力をありがとうございました、助言の言葉:もしあなたがすでに1つを作っているなら、もっと答えを出さないでください。あなたの答えを広げるためにコメントをつけてください。私はちょうど1つを受け入れることができるので、私は冷静になり、それらをすべてアップします。再度、感謝します。 – 8vius