학교 과제인데 풀다가 대가리 깨질 것 같아서 내가 그렇게 재능이 없는 궁금해서 물어봄


★5개 만점기준 몇개짜리정도 되는거임?.... 와 왤케 머리아프냐....


이해한거랑 직접짜보는거랑 완전 천지차이구나..




  양의 정수(32비트 미만)와 양의 소수(소숫점이 있는 수)를 갖는 수식이 중위수식(infix)으로 표현된다. 주어진 중위수식을 후위수식(postfix)으로 변경하여 출력하고 계산 결과를 출력하는 프로그램을 작성하시오.

피연산자 ::= 양의 정수 또는 양의 실수

양의 정수 ::= 0부터 9로 이루어진 32비트 미만으로 표현된 수

             0, 0100, 00934, 1056, 65535라는 양의 정수 표현이 허용됨

양의 소수 ::= 양의 정수 그리고 소숫점(.) 그리고 양의정수로 표현된 수

             0.0, 000.0100, 0.0001054, 0065.535, 1000.32라는 양의 소수 표현이 허용됨

연산자 ::=  ‘+’, ‘-’, ‘*’, ‘/’, ‘^’, ‘u’  이 때, u는 단항연산자로 -(음의 부호)를 의미함

          나머지는 모두 이항연산자임

 

양의 정수와 소수를 포함하는 중위수식을 입력받는다.

입력된 중위수식을 후위수식으로 변경하고 맞는 수식인지 출력한다.

중위수식이 합당한 경우 변경된 수식을 계산하여 결과값을 출력한다.

 

제출물 :

     프로그램 소스와 입력 예를 통한 출력

 

) 입력된 infix :  (15+5)*(15+u5) // 실제 수식은 (15+5)*(15+(-5))

           postfix:  15 5 + 15 5 u + *

                    결과값 = 200

 

    입력된 infix :  003.14 * 05^2 // 실제 수식은

           postfix: 3.14 5 2 ^ *

                   결과값 = 78.5

 

    입력된 infix :  (13.75 – 06.25)/u2 // 실제 수식은 (13.75 – 6.25)/(-2)

           postfix: 13.75 6.25 - 2 u /

                   결과값 = -3.75

 

    입력된 infix : (13.2 – 3.2)/2*(5.6 + u2.6) + 3)

                   출력: 계산이 불가능한 수식입니다.

    입력된 infix : 2* 5.6 – 3.14*-4

                   출력: 허용되지 않는 수 표현입니다. (-4)