2007. 10. 6 - 첫번째 설계를 토대로 작성하였다. 아래 나오는 그림중 calculate()함수를 구현하였고 이 함수는 숫자와 '.' 로만 이루어진 피연산자(실수) 그리고 사칙연산('+','-','*','/') 및 괄호['(',')'] 등만 포함하는 수식의 값을 구해주는 함수이다.

- in processor


void parser(char *);

void calculate(char *);



calculate가 계산해야하는 수식은 다음과 같이 간단하게 syntax 를 정의할 수 있다.

 expr = expr + term
       | expr - term
       | term

 term = term * factor
       | term / factor
       | factor

 factor = digit
       | (expr)


그리고 이 syntax는 다음과 같이 같단하게 구현될 수 있다
 

more..

위에서 보는바와 같이 caculrator() 구현을 위해 다음과 같은 함수가 추가되었다

int isExpression(const char *);
void getNextToken(void);
double expr(void);
double term(void);
double factor(void);

다음은 간단한 실행화면이다.

사용자 삽입 이미지





사용자 삽입 이미지

 




사용자 삽입 이미지







 이렇게 하여 프로젝트 스펙의 1번 기본적인 사칙연산 수행은 구현되었다. 풀코드는 후배들이 과제중이므로 나중에 공개하겠다.


프로젝트 메인으로

이올린에 북마크하기(0) 이올린에 추천하기(0)
« PREV : 1 : 2 : 3 : 4 : 5 : ... 6 : NEXT »