상세 컨텐츠

본문 제목

계산기

etc

by ryujt 2010. 10. 27. 12:00

본문


누구나 한 번쯤은 만들어 본다는 계산기 프로그램입니다.

Lex와 Yacc를 사용하지 않고,
순수 코딩으로 컴파일러를 만드는 과정 중에 테스트 용으로 만든 것입니다.

회사 일이 한가해지면, 준비해서 강좌를 만들어볼 생각입니다.

수식을 쓰고 "=" 키를 누르면 계산결과를 해당 라인 끝에 붙여 줍니다.
함수는 반드시 함수명() 형태여야 합니다.
사용 가능한 함수는 Sin, Cos, Tan, ArcSin, ArcCos, ArcTan, Ln, Log, Log2, Degree 입니다.
Functions라는 클래스의 Published에 메소드만 추가하면 자동 인식하도록 해뒀습니다.
Sin(Pi/2) * 3 = 3
Degree(30) = 0.523598775598299  // 각도를 라디안 값으로 변환합니다.

Pi만 상수 취급하지만, 사실은 함수입니다.
Pi = 3.14159265358979

지수표현식도 가능합니다.
1.234E3 = 1234

+/-의 경우에는 연산자와 부호의 두 가지 의미가 있습니다.
부호 처리는 아래와 같습니다.
-1 = -1
--1 = 1

제곱 연산자는 ^ 입니다.
2^3 = 8


'etc' 카테고리의 다른 글

계산기용 스캐너 만들기 - State Pattern  (1) 2010.11.04
계산기용 스캐너 만들기 - Lex 편  (0) 2010.11.01
영풍문고의 서비스  (0) 2010.10.14
시스템 함수  (0) 2010.10.13
Blue Orange OP Code  (0) 2010.10.13

관련글 더보기