배열과 클래스의 응용:다항식 프로그램

2020. 2. 2. 17:22카테고리 없음

 

 

#include 
#define MAX_DEGREE 80 

class polynomial {
 int degree;  //차수 
 float coef[MAX_DEGREE]; //계수  
public: 
polynomial() {degree = 0;}

void read() {
 printf("다항식의 최고 차수를 입력하시오: "); 
 scanf("%d", &degree); 
 printf("각 항의 계수를 입력하시오 (총%d개)",degree+1);
 for(int i = 0; i <= degree; i++) 
 scanf("%f",coef+i); 

void display(char* str= "poly = ") {
 printf("\t%s",str);
  for(int i = 0; i < degree; i++) 
  printf("%5.1f x^ %d + ", coef[i], degree-i); 
  printf("%4.1f\n", coef[degree]);

void add(polynomial a, polynomial b) {
if(a.degree > b.degree){ 
 *this = a; 
 for(int i =0 ; i<= b.degree;i++) 
 coef[i+(degree-b.degree)] += b.coef[i];
}
else {
*this = b; 
for(int i =0 ; i<= a.degree;i++) 
 coef[i+(degree-a.degree)] += a.coef[i];

}
bool isZero() {return degree == 0;}
void negate() {
 for(int i = 0; i< degree; i++) 
 coef[i] = - coef[i]; 

};


void main() {
 polynomial a,b,c; 
 a.read();
 b.read(); 
 c.add(a,b);
 a.display("A = ");
 b.display("B = ");
 c.display("A+B = ");

직접 복사해서 실행해보는 것을 추천한다!