Главная страница

КУРСОВАЯ РАБОТА по дисциплине: «Программирование» на тему: «Многочлены». Курсовая программирование. Многочлены


Скачать 295 Kb.
НазваниеМногочлены
АнкорКУРСОВАЯ РАБОТА по дисциплине: «Программирование» на тему: «Многочлены
Дата05.04.2023
Размер295 Kb.
Формат файлаdoc
Имя файлаКурсовая программирование.doc
ТипКурсовая
#1038801
страница8 из 8
1   2   3   4   5   6   7   8

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<else{

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<cout<<"Наибольший общий делитель двух многочленов: "<
c=NOD(a,b);

c.vivod();

system ("PAUSE");

return 0;

}

1   2   3   4   5   6   7   8


написать администратору сайта