후위식 변환과 계산
페이지 정보
작성일 20-10-27 11:25본문
Download : 후위식 변환과 계산.hwp
가령, 42라는 값의 수가 있다면, 그것이 진짜 42의 값을 가지는 수인지 아니면 아스키코드번호 42인 ‘*‘ 인지 컴파일러에서는 구분을 할 수가 없습니다.자료구조론3스택계산기 , 후위식 변환과 계산기타레포트 ,






Download : 후위식 변환과 계산.hwp( 55 )
수식을 입력하면 후위식(postfix)으로 변환된 결과를 디스플레이하고 계산결과를 출력한 리포트입니다.
Terms::Terms(float x) {
// 숫자가 입력됐을 때
fldigit=x;
isalp=false;
}
Terms::Terms(char x) {
// 문자가 입력됐을 때
fldigit=(char)x;
isalp=true;
}
이렇게 쓰게 되면 fldigit에는 reference(자료)가 들어가지만 isalp에서 그 reference(자료)가 수인지 연산자인지 판별할 수 있습니다. sign flag bit를 여기서 사용하였습니다.
우선 단항연산자의 경우는 수식의 첫 스타트이거나 연산자의 바로 다음과 여는 괄호의 바로 다음 부분에 ‘-’가 오게 되면 단항연산을 수행하도록 수를 저장하는 배열(ftemp)에 ‘-’부호를 넣어 atof((float)ftemp);를 사용할 때 음수가 되도록 설정하였습니다.,기타,레포트
설명
레포트/기타
자료(資料)구조론3스택계산기
순서
수식을 입력하면 후위식(postfix)으로 변환된 결과를 디스플레이하고 계산결과를 출력한 리포트입니다.
그리고 여는 괄호가 나올 때 바로 앞에 연산자가 있다면 괄호 자체에 1을 먼저 곱하게 하고, 혹시 음수부호가 있거나 빼기 연산자가 있다면 -1을 곱하게 합니다.
우선 Terms 라는 class를 정이하고 이것의 생성자들을 이렇게 구현합니다. 그래서 저는 reference(자료)형에서 수와 연산자를 구분 지을 수 있는 방법을 고안해 보았습니다. 후위표기식을 출력하거나 계산할 때 isalp값을 통해 그 reference(자료)의 성질을 파악하고 올바르게 출력과 계산을 할 수 있습니다.
(2) 변환 알고리즘
문자열을 입력받아서 각각의 문자마다 정보를 판독하여 구분을 하고, 상황에 따른 플래그비트를 두어 상태에 맞게 변환이 되도록 설정하였습니다. 그리고 괄호 앞에 연산자가 없이 숫자가 바로 되어 있는 경우 즉 “-3(-4-5)”의 수식의 경우 로 바꿀 수 있도록 설…(省略)
후위식 변환과 계산
다.
(1) reference(자료)형
후위표기식 배열에 들어가는 reference(자료)들은 수와 연산자입니다. 하지만 아스키코드(ASCII Code) 때문에 수와 연산자를 확실히 구분하지 못하게 됩니다.