implication chart를 이용한 등가항 제거 프로그램(C로 작성)
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

implication chart를 이용한 등가항 제거 프로그램(C로 작성)에 대한 보고서 자료입니다.

목차

없음

본문내용

중복 기입을 피하고 등가항들이 연쇄적으로 대체되는 것을 고려하여 eqv_list의 홀수번째 항 중
가장 큰 값을 가지는(max_num, max) 순서대로 대체한다. *?
void final_state_table(Chart imp_chart[MAX][MAX])
{
int row, col, i, j, k, max_num;
// max_num ->연쇄 등가항을 고려..가장 먼저 제거될 state의 no
char eqv_list[21];
// 등가항 리스트 배열. 홀수항 : 대체될... , 짝수항 : 삭제될...등가항
char max; // 연쇄 등가항 고려... 가장 먼저 제거될 ps
char *c; // 등가항 중복을 피하기 위해 사용하는 포인터
for(row = 1,j=0; state[row] != NULL ; row++)
for(col = 0 ; col < row ; col++)
if(imp_chart[row][col].iseqv != 'X')
for(i = 0; i < 2 ; i++)
if(imp_chart[row][col].eqv[i][0] != '\0'){
if((c=strchr(eqv_list,imp_chart[row][col].eqv[i][0])) != NULL)
if(*++c == imp_chart[row][col].eqv[i][1])
continue;
// 등가 리스트의 중복을 피하기 위해
eqv_list[j++] = imp_chart[row][col].eqv[i][0];
eqv_list[j++] = imp_chart[row][col].eqv[i][1];
}
eqv_list[j+1] = eqv_list[j] = NULL;
// 가장 먼저 제거될 등가항을 찾기위해...
for(count = 0 ; count < (j+1)/2 ; count++){
for(i = 1, max_num = 1, max = 'a'; i < j ; i += 2){
max_num = (max < eqv_list[i]) ? i : max_num;
max = (max < eqv_list[i]) ? eqv_list[i] : max;
}
delete_eqv_state(eqv_list, max_num);
}
state_resort();
}
void proc_imp_chart(char *source_fname)
{
Chart imp_chart[MAX][MAX];
init_input(source_fname);
print_state_num();
mk_imp_chart(imp_chart);
step_imp_chart(imp_chart);
final_state_table(imp_chart);
print_final_state_table();
}
void main(int argc, char *argv[])
{
if(argc <= 1)
do{
printf("/nfilename input : ");
}while(!scanf("%s",argv[1]));
proc_imp_chart(argv[1]);
}
< 등가항 제거를 위한 implication chart 구성과 진행 >

키워드

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