КУРСОВАЯ РАБОТА по дисциплине: «Программирование» на тему: «Многочлены». Курсовая программирование. Многочлены
Скачать 295 Kb.
|
while(stepen>=m.stepen) { c.stepen=stepen-m.stepen; c.koof[c.stepen]=koof[stepen]/m.koof[m.stepen]; d=m*c; *this=*this-d; } c.stepen=l; return c; } /* Производная от многочлена*/ mnogochlen mnogochlen::proizvodnaa() {mnogochlen c; int i, j; c.stepen=stepen; for(i=1;i<=stepen;i++) {c.koof[i-1]=koof[i]*i;}c.stepen--; return c; } /* Равны ли многочлены?*/ bool mnogochlen :: operator ==(mnogochlen m) { bool priznak; int i; if(stepen!=m.stepen){priznak=0;} else {for(i=0;i<=stepen;i++) { if(koof[i]!=m.koof[i]) {priznak=0;break;} else {priznak=1;} } } return priznak; } /* Не равны ли многочлены?*/ bool mnogochlen :: operator !=(mnogochlen m) { bool priznak; int i; if(stepen!=m.stepen){priznak=0;} else {for(i=0;i<=stepen;i++) { if(koof[i]!=m.koof[i]) {priznak=1;break;} else {priznak=0;} } } return priznak; } /* Произведение многочленов*/ mnogochlen mnogochlen :: operator *(mnogochlen m) {mnogochlen d; int i,j,k; k=stepen+m.stepen; for (i=0;i<=k;i++) { d.koof[i]=0; } for (i=0;i<=stepen;i++) { for(j=0;j<=m.stepen;j++) { d.koof[i+j]+=koof[i]*m.koof[j]; } } d.stepen=m.stepen+stepen; return d ; } /* Разность многочленов */ mnogochlen mnogochlen :: operator -(mnogochlen m) {mnogochlen d; int i,max; if(stepen>m.stepen) max=stepen; else max=m.stepen; if(stepen>m.stepen) { for(i=m.stepen+1;i<=max;i++) m.koof[i]=0;} else { for(i=stepen+1;i<=max;i++) koof[i]=0; } for (i=0;i<=max;i++) { d.koof[i]=koof[i]-m.koof[i]; } d.stepen=max; for(i=max;i>0;i--) {if(d.koof[i]==0){d.stepen--;} else{break;}} return d ; } /* нахождение значения значения в точке x0*/ double mnogochlen::znachenie(double x) {double y; int i; y=koof[0]; for(i=1;i<=stepen;i++) {y+=pow(x,i)*koof[i];} return y;} /* сложение многочленов */ mnogochlen mnogochlen :: operator +(mnogochlen m) {mnogochlen d; int i,max; if(stepen>m.stepen) max=stepen; else max=m.stepen; if(stepen>m.stepen) { for(i=m.stepen+1;i<=max;i++) m.koof[i]=0;} else { for(i=stepen+1;i<=max;i++) koof[i]=0; } for (i=0;i<=max;i++) { d.koof[i]=koof[i]+m.koof[i]; } d.stepen=max; for(i=max;i>0;i--) {if(d.koof[i]==0){d.stepen--;} else{break;}} return d ; return d ; } /* Создание многочлена */ void mnogochlen::sozdanie() { int i; cout<<"Введите степень многочлена (натуральное число):"< cin>>stepen; cout<<"введите свободный элемент"< cin>>koof[0]; for(i=1;i<=stepen;i++) { cout<<"Введите x в степени "< cin>>koof[i]; }} /* вывод многочлена */ void mnogochlen::vivod() {int j,i; cout<<"y="; if(stepen==0){cout< if(koof[stepen]>0) { cout< } else { if(koof[stepen]<0) {cout< else{cout<<"";} } j=stepen-1; for(i=j;i>=1;i--) { if(koof[i]>0) { cout<<"+"< else { if(koof[i]<0) {cout< else{cout<<"";}} } if(koof[0]>0) { cout<<"+"< else { if(koof[0]<0) {cout< else{cout< /* возведение многочлена в степень */ mnogochlen mnogochlen ::stepeny(int k) {int i; mnogochlen d,c; c.stepen=stepen; for(i=0;i<=stepen;i++) {c.koof[i]=koof[i];} d.stepen=0; d.koof[0]=1; for(i=1;i<=k;i++) {d=d*c; } return d;} /*Нахождение НОД двух многочленов*/ mnogochlen NOD(mnogochlen a, mnogochlen b) {mnogochlen r1, r2, r3; if(a.stepen>=b.stepen){r1=a;r2=b;} else{r1=b;r2=a;} while(r2.stepen>0) { r3=(r1%r2); if(r3.stepen==0) {return r2;} r1=r2; r2=r3; } return r3; } int main() { mnogochlen a,b,c; double y,x,k;bool m; int l; system("chcp 1251"); cout<<"Первый многочлен: "< cout< a.sozdanie(); a.vivod(); cout< cout<<"Второй многочлен: "< b.sozdanie(); b.vivod(); cout< c=NOD(a,b); c.vivod(); system ("PAUSE"); return 0; } |