후위계산기
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

■ 문제개요
■ 문제분석 및 해결방법
■ 소스코드 및 주석
■ 실행화면
■ 느낀점

본문내용

/ /를 만났을때
{float a = d.pop();
float b = d.pop();
d.push(b/a);//결과를 push
}
else
{
token[k++] = post[j]; // 연산자가 아닌 숫자를 만나면 배열에 넣고
token[k] = 0; // 그 다음 값을 null로 해줌
}
}
}
float result;
result = d.pop();
cout<<"계산값: "< }
int check(char poly[],int size)
{
int a = 0,b = 0;
if(poly[0] <='0' && poly[0] >= '9') // 연산자가 먼저 들어올 경우 에러
return 0;
for(int i = 0 ; i < size; i++)
{
if(poly[i] == '(') // 여는괄호가 오면그냥 지나감
{
;
}
else if(poly[i] == ')') // 닫는 괄호가 오면 그냥 지나감
{
;
}
else if(poly[i] == '+' || poly[i] == '-' || poly[i] == '*' || poly[i] == '/' || poly[i] == '^')
{
a++; // 연산자의 개수를 카운트
}
else if(poly[i] >= '0' && poly[i] <= '9')
{
b++; // 피연산자의 개수를 카운트
}
else return 0;
}
if(b > a && b > 1)
return 1;
else
return 0;
}
void main()
{
char poly[50]; //입력수식
int size;
cout<<"*** 수식계산 프로그램 ***"< cout<<"계산식 입력: ";
cin>>poly;
for(int i = 0;i < 50;i++) //입력수식의 크기
{
if(poly[i] == 0)
{
size = i;
}
}
int a =check(poly,size);
if(a == 1) //올바른 식일경우
{
hoowi(poly,size); // 후위식으로 변환
}
else //비정상적인 식일 경우
{
cout<<"error"< }
}
■ 실행화면
■ 느낀점
이번과제는 수식을 입력받아 후위식으로 입력받아 계산값을 출력하는 것이었다. 이번 과제가 있기 몇주전 프로그래밍 언어론에서 수식을 입력받아 토큰을 구하는 문제를 자바를 이용해 구현 했던지라, 과제를 시작할때부터 조금 편안한 마음으로 시작할수 있었다. 토큰을 구하는 부분은 쉽게 해결할수 있었으나, 후위식으로 나타낼 때는 생각처럼 잘 되지 않았다. 이론은 알겠으나 코드로 구현하는데 있어 어려움이 많았다. 하여 그부분에 있어서 많은 시간을 빼앗겼다. 책에 나와 있는 push기능과 pop기능을 최대한 활용하여 그나마 어느정도 구현할수 있었다.
이번 과제는 2주동안 배운 스택기능을 총망라 해서 구현하는 과제인 것 같다. 지금껏 했던 과제중에서 가장 광범위한 파트에 걸쳐 연관되어 있던 과제였다. 앞으로도 이러한 과제가 계속 나올꺼 같아 걱정이 되며, 더욱 더 열심히 해야 겠다.

키워드

c++,   자료구조,   계산기,   후위
  • 가격1,500
  • 페이지수7페이지
  • 등록일2011.12.19
  • 저작시기2011.11
  • 파일형식한글(hwp)
  • 자료번호#721811
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니