명령행 계산기 만들때요
글쓴이: geneven / 작성시간: 수, 2006/01/25 - 8:43오후
예전 군입대 전에 학교 숙제로 명령행 계산기를 만드는 숙제를 학교에서 내준적이 있었는데 게을러서 그런것도 있고 워낙 빡센수업이 같이 있어서 결국에는 해결 못했던 기억이 나네요.
지금와서 다시 생각해봐도 어떻게 해야할지 잘 모르겠는데 자료구조를 어떤걸 써서 해결해야 쉽게 해결할수 있죠?
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 9.33 KB |
![]() | 815바이트 |
![]() | 4.23 KB |
![]() | 650바이트 |
Forums:
DC라는 명령행 계산기 소스를 분석해 보시지요http://www.
DC라는 명령행 계산기 소스를 분석해 보시지요
http://www.gnu.org/software/bc/manual/dc-1.05/html_mono/dc.html
Re: 명령행 계산기 만들때요
이런 문제 같은 경우엔 후위표기법을 사용하시면서 스택을 이용해 풀어야 합니다.
2 + 3 * 5 라는 수식이 있다면 수식 나무 (Parse Tree) 를 통해
후위표기법 2 3 5 * + 으로 변환하신 뒤 스택으로 후위 표기법을
푸는 알고리즘을 이용하시면 되겠습니다.
C로 배우는 알고리즘 (1) - 이재규, 세화 3장 11절 "나무 구조의 응용 : 수식 나무(Parse Tree)" (pp. 250-261)
C로 배우는 알고리즘 (2) - 이재규, 세화 10장 2절 "수식 분석과 계산(Expression Parsing & Evaluation)" (pp. 1211-1241)
참고하시기 바라며, 소스 코드를 첨부하겠습니다.
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
위 3개의 첨부파일 외에도 2편 10장 2절의 EXPARSER.H 가
위 3개의 첨부파일 외에도 2편 10장 2절의 EXPARSER.H 가
필요하게 됩니다. 파일 첨부하겠습니다.
(게시물당 파일 첨부 최대 3개 제한 때문에)
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
너무 앞서가는 것 같지만...COMPILERS:PRINCIPLES
너무 앞서가는 것 같지만...
COMPILERS:PRINCIPLES,TECHNIQUES,AND TOOLS (한국어판)
앞부분(스캐너, 형태소분석기) 내용이 postfix calculator (stack) 입니다.
명령행 계산기도 일종의 인터프린터...
나중에 shell을 만들어볼때도 많은 도움이 될겁니다.
Hello World.
댓글 달기