【programming】- 단순화된 공학 계산기 -◎ 프로그램 개요1. 기본적인 사칙 연산 수행예) 1 + 3 * 4= 132. C 시스템이 제공하는 수학 함수 제공(C99 부록 A의 에 있는 함수들을 제공 함)예) 2 + sqrt(100)= 123. 단일 변수 선언 및 사용(단, 단일 변수는 A부터 Z까지만 사용가능하고 소문자와 대문자 구별은 하지 않는다.)예) A = 3A + 4= 7A= 3B = A * 3B * A= 27A + sqrt(B)= 64. 배열 변수 선언 및 사용(단, 배열 변수는 AA부터 ZZ까지만 사용가능하고 소문자 대문자 구별은 하지 않는다. 그리고 AA가 정의되어 있을 경우 AA는 전체 원소를 뜻하고, 개별 원소는 AA에 첨자를 붙여 표시한다. 예를 들어, AA(0)은 AA의 첫 번째 원소를 뜻한다. 또한 배열 값의 총 합, 곱, 평균값, 표준편차를 위해 ADD(), MUL(), AVG(), STD() 함수를 제공해야 한다. 그리고 +, -, *, / 연산이 사용되면 대응되는 원소들 간의 +, -, *, /를 계산한다.)예) AA = 2, 3, 4, 5, 6BB = 1, 2, 3, 4, 5AA(0) + 4= 6AA + BB= 3, 5, 7, 9, 11ADD(AA)= 205. 단순 변수와 배열 변수 파일 저장 및 읽어오기 기능예) A = 3B = 4AA = 2, 3, 4, 5, 6save file_nameA = 5B = 10C = 3AA = 5, 2AA= 5, 2A + B= 15load file_nameAA= 2, 3, 4, 5, 6A + B= 7A + C= undefined symbol6. END 입력 시 프로그램 종료◎ 프로그램 설명- 주요변수 -● char input[N] : 수식을 입력받을 배열● double A[2][26]={0} : 단일 변수가 저장될 배열, A[0][i](i 는 0~25사이의 수)는 0으로 초기화 되어있으며 0또는 1이 들어간다. 만약 A[1][i]에 수가 들어있다면 1로 바꾼다.● double AA[2][26 너무 깁니다.n");continue;}x = calc(input);// %g 로 출력할 경우 -0.000000을 제대로 표현하지 못하기 때문에 그러할 경우 바꿔줌if(x > -0.000001 && x < 0.000001 )x = 0.0;//calc 함수 호출후 결과값 출력//단일 변수나 배열 변수의 값을 입력했을 경우는 출력하지 않음if(ch != 0)printf("= %gn", x);}return 0;}double calc(char input[N]){int i;int sign_flag = 1;//'-' 가 입력되었을시 음수로 숫자를 저장하기 위한 표시int oper_flag = 1;//마지막으로 push된 것이 숫자인지 연산자인지 표시int cnt = 0;//push되어 있는 숫자의 개수ch = 1;//ch를 1로 초기화//index값들 초기화idx_oper = -1;idx_num = -1;idx_input = 0;//수식에서 공백이 있을 경우 한칸씩 앞으로 땡겨서 공백을 없앰for(i = 0; input[i] != '