Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[8021] Re:[질문] 계산기를 만들려고 하는데요... 한수 부탁드립니다.
류종택 [ryujt] 1214 읽음    2002-03-21 22:13
우선 첨부파일은 제가 88년에 터보파스칼로 된 자료를 얻어 사용하던 것입니다..
가끔 필요할 때 사용하면서도 그때의 코딩스타일 하나 안고치고 -.-
(역시 게으름으로 날 따를자가)

우선 참고하시고요..
다른 분이 이미 답변을 다셨듯이..
컴파일러에 관한 책을 한 번 보세요..
중위법 또는 후위법을 이용해서..
수식을 토큰별로 분리하고 연산 순서를 정하는 방법을 배우실 수 있습니다.

굳이 지금형태에서 문자열 자르기를 마치시려면..
규칙을 정하셔야할 듯..
  Case 1 : 연산자 뒤에 +나 -가오면 부호 표시다.
  Case 2 : 선두에 +나 -가 먼저오면 부호 표시다.

등으로 경우수를 골라내시고..
코딩하시기 바랍니다..


Voice of Delphi, 류..

* Function Compute(Var P:Integer; Strg:String; Var Error:Boolean):Real;
  함수가 수식연산을 하는 함수입니다..
  Strg에 수식을 넣으면 계산결과가 나옵니다..
  사인 등 각종 함수가 모두 적용됩니다..


델초보 님이 쓰신 글 :
: 안녕하십니까 ?
: 텍스트의 내용을 입력받아 계산해주는 계산기를 만들려고 합니다..
: 부호가 있는 숫자의 연산을 하려니까 문제가 있네요...
:
: 예를 들어
:  1 + (10 *10)
: 이런식의 연산은 처리했습니다.
: 우선 토큰을 '1', '+', '10', '*', '10'으로 분리했습니다.
:
:  1 + (-10)
: 이것은 '1', '+', '(', '-', '10', ')'으로 분리했습니다.
: 그런데 '-', '10' 으로 분리되는것이 아니라
: '-10'으로 분리하고 싶습니다. 왜냐하면 '-'가 연산자가 아니라 부호이기 때문입니다.
:
: 고민을 해봐도 연산자와 부호가 구별되지 않습니다.
: 처리할 수 있는 방법이 있을것 같은데 잘 되지 않습니다.
: 고수분들의 한수 부탁드립니다.
:

:
:
:

+ -

관련 글 리스트
8019 [질문] 계산기를 만들려고 하는데요... 한수 부탁드립니다. 델초보 616 2002/03/21
8021     Re:[질문] 계산기를 만들려고 하는데요... 한수 부탁드립니다. 류종택 1214 2002/03/21
8020     Re:[질문] 계산기를 만들려고 하는데요... 한수 부탁드립니다. 지나가는 사람 787 2002/03/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.