어떻게하면 다음과 같은 문제를 해결할 수 있습니까? 그것은 에펠의 계산기입니다.에펠 프로그래밍 연습
입력은 명령 행 매개 변수를 통해 이루어집니다.
피연산자는 용어 "a x^b Y^c"를 나타내는 정수 "a b c"로 구성됩니다. 다항식의 삼중 항은 다음 샘플에서와 같이 문자 '#'로 구분됩니다.
입력 문자열 "1 2 0 # -2"로 표현 된 폴리 노미 널 (x^2 - 2xy + y^2) 1 1 1 0 2 "
실행주기
$의 POLI
>> 1 2 0 # -2 1 1 # 1 0 2
>> 1 2 1 # 1 2 0 # 2 1 1 # -1 0 2
>> +
1 2 1 + 2 2 0
>> e 4 3
80 0 0
구체적인 문제는 무엇이 될 수 있습니까? 어떤 디자인/수업/기능을 가지고 있습니까? 어떤 작업을 지원해야합니까? 왜 입력은 삼중 항을 결합하기 위해'#'표기법을 사용 하나, 출력은'+'를 사용합니까? 숫자 대신에 문자가 제공되는 예제의 마지막 부분의 의미는 무엇입니까? 질문을보다 구체적인 것으로 대체하거나 운동을하기위한 노력과 어떻게 해야할지 모르는 것을 보여주는보다 구체적인 질문으로 바꾸는 것이 좋습니다. –
지원해야하는 연산은 다음과 같습니다. +, -, * : 스택에 두 개 이상의 요소가 포함되어있는 경우 스택 상단에있는 두 개를 모두 가져 와서 중가 방식으로 작업을 수행합니다. op1 opr op2. 또한 eval (작업 'e')을 수행 할 수 있어야합니다.이 작업은 다음과 같은 방식으로 이루어집니다. e v1 v2. –
# 표기법을 사용하여 세 쌍을 결합하는 이유는 +가 출력을 사용하기 때문입니다. + 실제로는 +가 출력이 아니기 때문에 프로그램에서 두 피연산자를 스택의 맨 위에 추가하기 때문에 특정 값 대신에 작업과 함께 스택에 먼저 삽입 한 다음 맨 위의 작업을 수행합니다. –