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

C++빌더 Q&A
C++Builder Programming Q&A
[64380] Re:계산기 소스를 만들다가 질문 드립니다.
송신영 [palindrome] 1272 읽음    2011-05-18 14:33
일반적인 수식을 계산하기 위해서는
프로그래밍으로 계산하기 편한 방식으로 수식을 변경해야합니다.
아래 작성하신 코드는 그냥 단순한 단일 계산만 가능하구요
이런 구조로는 복잡한 수식을 계산하는 코딩을 할 수 없습니다.
계산기를 만들기 위해서는 infix, prefix, postfix 에 대한 선행 학습이 필요합니다.
제가 인터넷 검색으로 그냥 대충 찾은 싸이트 공유합니다.
해당 키워드로 검색하여 공부를 좀 해야 계산기 다운 계산기를 만드실 수 있습니다.

참조 : http://blog.naver.com/ryutuna?Redirect=Log&logNo=100122313091

서덕만 님이 쓰신 글 :
: 안녕하세요 질문 있어서 글 올립니다
:
: 이제 막 Visual C++을 이용해서 프로그램을 좀 만들어보려고 하는 사람인데요
:
: 계산기를 만들고 있는데 아래와 같은 소스를 만들었습니다.
:
: 똑같은 코드가 자꾸 반복 되는데 For문을 이용해서 이걸 반복 할 수 있나요?
:
: 아래 보시면 연산자 기호를 입력을 받는데 소스를 한번만 써도 반복해서 입력 받을 수 있는 방법이 있을까요?
:
: 조언 좀 부탁 드리겠습니다.
:
:
: #include "stdafx.h"
:
:
: int main(int)
:
: {
:
:     float a[100] = {0};
:     char b, c, d, e, f, g;                    
:
:     printf("수식을 입력하세요 : ");
:     scanf("%f%c%f", &a[0], &b, &a[1]);
:        
:     switch ( b )
:     {
:     case '+':
:         a[2] = a[0] + a[1];
:         break;
:     case '-':
:         a[2] = a[0] - a[1];
:         break;
:     case '*':
:         a[2] = a[0] * a[1];
:         break;
:     case '/':
:         a[2] = a[0] / a[1];
:         break;
:     }
:
:     scanf("%c", &c);
:
:     switch ( c )
:     {
:         case '=':
:         printf("%f", a[2]);
:         case '+':
:         scanf("%f", &a[3]);
:         a[4] = a[2] + a[3];
:         break;
:         case '-':
:         scanf("%f", &a[3]);
:         a[4] = a[2] - a[3];
:         break;
:         case '*':
:         scanf("%f", &a[3]);
:         a[4] = a[2] * a[3];
:         break;
:         case '/':
:         scanf("%f", &a[3]);
:         a[4] = a[2] / a[3];
:         break;
:     }
:
:     scanf("%c", &d);
:
:     switch ( d )
:     {
:         case '=':
:         printf("%f", a[4]);
:         case '+':
:         scanf("%f", &a[5]);
:         a[6] = a[4] + a[5];
:         break;
:         case '-':
:         scanf("%f", &a[5]);
:         a[6] = a[4] - a[5];
:         break;
:         case '*':
:         scanf("%f", &a[5]);
:         a[6] = a[4] * a[5];
:         break;
:         case '/':
:         scanf("%f", &a[5]);
:         a[6] = a[4] / a[5];
:         break;
:     }
:
:     scanf("%c", &e);
:
:     switch ( e )
:     {
:         case '=':
:         printf("%f", a[6]);
:         case '+':
:         scanf("%f", &a[7]);
:         a[8] = a[6] + a[7];
:         break;
:         case '-':
:         scanf("%f", &a[7]);
:         a[8] = a[6] - a[7];
:         break;
:         case '*':
:         scanf("%f", &a[7]);
:         a[8] = a[6] * a[7];
:         break;
:         case '/':
:         scanf("%f", &a[7]);
:         a[8] = a[6] / a[7];
:         break;
:     }
:
:     scanf("%c", &f);
:
:     switch ( f )
:     {
:         case '=':
:         printf("%f", a[8]);
:         case '+':
:         scanf("%f", &a[9]);
:         a[10] = a[8] + a[9];
:         break;
:         case '-':
:         scanf("%f", &a[9]);
:         a[10] = a[8] - a[9];
:         break;
:         case '*':
:         scanf("%f", &a[9]);
:         a[10] = a[8] * a[9];
:         break;
:         case '/':
:         scanf("%f", &a[9]);
:         a[10] = a[8] / a[9];
:         break;
:     }   
:    
:     scanf("%c", &g);
:
:     switch ( g )
:     {
:         case '=':
:         printf("%f", a[10]);
:         return 0;
:         case '+':
:         scanf("%f", &a[11]);
:         a[12] = a[10] + a[11];
:         break;
:         case '-':
:         scanf("%f", &a[11]);
:         a[12] = a[10] - a[11];
:         break;
:         case '*':
:         scanf("%f", &a[11]);
:         a[12] = a[10] * a[11];
:         break;
:         case '/':
:         scanf("%f", &a[11]);
:         a[12] = a[10] / a[11];
:         break;
:     }
:
:     printf("%f\n", a[12]);
:
:     return 0;
:
: }

+ -

관련 글 리스트
64377 계산기 소스를 만들다가 질문 드립니다. 서덕만 1152 2011/05/18
64380     Re:계산기 소스를 만들다가 질문 드립니다. 송신영 1272 2011/05/18
64383         Re:Re:계산기 소스를 만들다가 질문 드립니다. 서덕만 1115 2011/05/19
64393             Re:Re:Re:계산기 소스를 만들다가 질문 드립니다. 송신영 922 2011/05/20
64395                 Re:Re:Re:Re:계산기 소스를 만들다가 질문 드립니다. 서덕만 1039 2011/05/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.