지금까지 6 일 동안이 과제에 대한 작업을 해왔습니다. 과제에 대한 더 많은 아이디어 나 방법이 없기 때문에 특별히 좌절감을 느낍니다.RPN 계산기 할당 2, descriptionOfProgram
나는 프로그램 부분에 대한 설명을하고있다. (나는 그것에 착수했으며 나머지 임무를 수행하지 않았다.) 나는 무엇을해야하는지 혼란 스럽다. 다음은 현재 구현 된 내용입니다.
+(NSString *)descriptionOfProgram:(id)program
{
if (![self isValidProgram:program])
return @"Invalid program!";
NSMutableArray *stack = [program mutableCopy];
return [self descriptionHelper:stack];
}
+(NSString *)descriptionHelper:(NSMutableArray *)stack
{
NSString *result;
id topOfStack = [stack lastObject];
if (topOfStack) [stack removeLastObject];
if ([topOfStack isKindOfClass:[NSNumber class]])
{
result = [topOfStack stringValue];
}
else if ([topOfStack isKindOfClass:[NSString class]])
{
result = [NSString stringWithFormat:@"(%@ %@ %@)",[self descriptionHelper:stack],topOfStack,[self descriptionHelper:stack]];
return result = [self bracketHandler:result];
}
return result;
}
+(NSString *)bracketHandler:(NSString *)stringWithBrackets
{
int lengthOfString = [stringWithBrackets length];
NSString *newString = stringWithBrackets;
if (lengthOfString < 8)
{
newString = [newString stringByReplacingOccurrencesOfString:@"(" withString:@""];
newString = [newString stringByReplacingOccurrencesOfString:@")" withString:@""];
}
else
{
<#statements#>
}
return newString;
}
나는이 시점에서 막혔어요, 난 내 현재 구현 빨아 보인다 알고 있지만, 사실이 작업을 완료하고 인간을 표시하는 방법, 찾기 위해 무엇을 이동하는 곳의 단지 작은 안내를 원하는 모든 시간에 내 프로그램에 대한 읽을 수있는 설명을 최소한의 대괄호와 논리적 인 방법으로 제공합니다.
올바른 방향으로 조금만 밀어 주시면 감사하겠습니다. 너무 길어요.
무엇이 당신의 질문입니까? –
논리 형식으로 바뀔 때마다 프로그램을 포맷하고 싶습니다. 입력 내용이 2, 3, 5, +, *라고하면 2 * (3 + 5)를 인쇄해야합니다. 가능한 경우. 어디에서 시작 해야할지 알고 싶습니다. 어디서부터 시작 해야할지 모릅니다. 어떻게 NSString을 조작해야합니까? 또는 배열? 내 조건을 어떻게 시작해야하는지에 대해 알아야 할 상황이 생기면, 나는이 길을 시작하기 위해 작은 방향이 필요합니다. 특히 재귀에서 수행하고 싶다면 조금 더 어려워집니다. –
이 "C++ RPN 계산기"에 대한 인터넷 검색은 어떻습니까? –