검색어 입력폼

[자료구조]후위식 수식 계산기

등록일 2006.03.26 한글파일 한컴오피스 (hwp) | 9페이지 | 가격 500원

소개글

중위식으로 입력한 산술식을 후위식으로 변환하여 계산하는 프로그램

컴파일 실행환경

C++

본문내용

# 알고리즘
1. 중위식을 입력받아서 배열에 넣습니다.
2. 그 배열의 끝까지 루프를 돌면서 (3번~8번)
3. 배열값에 스페이스가 나올때까지를 검색하면서(4번~8번)
4. 각자리수가 따로 저장된 숫자를, 의도하려던 정수꼴로 알맞게 고치고
5. 연산자는 스택에 넣습니다.
6. 이때 스택에 넣는 연산자들은 그 크기를 비교하여 자리지정을 하고
7. 빠져나온 연산자와 newname에 있는 두개의 값들을 가지고 연산을 합니다.
8. 결과값을 출력합니다.

#3 소스 및 주석
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>


char name[40]; //처음에 입력받는 식의 배열입니다.
int newname[40]; //숫자를 넣기위한 배열입니다.
char op[40]; //연산자를 넣기위한 배열입니다.
int name_pos=0,newname_pos=0,op_pos=-1; //각각의 위치를 잡기위한 변수와
//그 변수들을 초기화합니다.

char s[6]={`(`,`)`,`*`,`/`,`+`,`-`}; //연산자들의 배열입니다.

sem(char sem_x) //수식 계산을 위한 함수입니다.

if (sem_x==`+`)
{
cout<<"+";
newname[newname_pos-1]+=newname[newname_pos];
newname[newname_pos] = 0;
newname_pos--;
}
else if (sem_x==`-`)
{
cout<<"-";
newname[newname_pos-1]-=newname[newname_pos ];
newname[newname_pos] = 0;
newname_pos--;
}
else if (sem_x==`*`)
{
cout<<"*";
newname[newname_pos-1]*=newname[newname_pos];
newname[newname_pos] = 0;
newname_pos--;
}
else if (sem_x==`/`)
{
cout<<"/";
newname[newname_pos-1]/=newname[newname_pos];
newname[newname_pos] = 0;
newname_pos--;
}

참고 자료

없음
다운로드 맨위로