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
[64395] Re:Re:Re:Re:계산기 소스를 만들다가 질문 드립니다.
서덕만 [] 1039 읽음    2011-05-20 11:46
진심으로 감사드립니다^^ 좋은 하루 보내세요!

송신영 님이 쓰신 글 :
: gets(char *)  를 사용하시면 됩니다.
: 이 함수는 사용자가 Enter Key를 입력할 때 까지 작성한 모든 문장을 입력받습니다.
: scanf() 는 공백이 있으면 그 공백까지만 입력받고 Enter 입력까지 모두 받지 못합니다.
: getch()는 문자 하나만 입력받고 Enter 키 없이 바로 입력 받습니다.
:
: 서덕만 님이 쓰신 글 :
: : 답변 주셔서 진심으로 감사드립니다.
: :
: : 아직 초보라 모르는게 많은데 스택에 대해 공부하고, 다시 프로그램을 짜보려고 하고 있습니다.
: :
: : strcpy(buf , " ");
: :
: : 이 위에 소스에서 " " <-- 사이에 문자를 입력받아서 계산을 하려고 만들어 보았는데
: :
: : 이 사이에 입력을 받기 위해선 어떠한 함수가 필요하나요? 임의적으로 숫자와 연산자를 넣으면 계산이 되는데
: :
: : 입력을 받을려고 하니까 도저히 모르겠습니다.
: :
: : 가르쳐주시면 감사하겠습니다.
: :
: :
: : 송신영 님이 쓰신 글 :
: : : 일반적인 수식을 계산하기 위해서는
: : : 프로그래밍으로 계산하기 편한 방식으로 수식을 변경해야합니다.
: : : 아래 작성하신 코드는 그냥 단순한 단일 계산만 가능하구요
: : : 이런 구조로는 복잡한 수식을 계산하는 코딩을 할 수 없습니다.
: : : 계산기를 만들기 위해서는 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:계산기 소스를 만들다가 질문 드립니다. 송신영 1273 2011/05/18
64383         Re:Re:계산기 소스를 만들다가 질문 드립니다. 서덕만 1115 2011/05/19
64393             Re:Re:Re:계산기 소스를 만들다가 질문 드립니다. 송신영 923 2011/05/20
64395                 Re:Re:Re:Re:계산기 소스를 만들다가 질문 드립니다. 서덕만 1039 2011/05/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.