|
Наследование 12 вариант
Описать производный класс, позволяющий умножать многочлен на число и складывать многочлены.
#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;
class Mnog
{
protected:
int stepen;
float arg, *T, znachenie;
public:
Mnog ();
Mnog (int a);
float PrintZnach(float);
void PrintVid();
};
Mnog::Mnog()
{
int i=0;
cout<<"Vvedite visshuy stepen mnogochlena"<<endl;
cin>>stepen;
stepen++;
T=new float[stepen];
while (i!=stepen)
{
cout<<"Vvedite koeficient pri x"<<i<<endl;
cin>>T[i];
i++;
}
}
Mnog::Mnog (int a)
{
int i=0;
stepen=a+1;
T=new float[stepen];
while (i!=stepen)
{
T[i]=float((rand()%100-50)*0.1);
i++;
}
}
void Mnog::PrintVid()
{
int i;
for(i=stepen-1; i>=0; i--){
if (i==0) cout<<"("<<T[i]<<"*x^"<<i<<")=y";
else cout<<"("<<T[i]<<"*x^"<<i<<")"<<"+";}
cout<<endl<<endl;
}
float Mnog::PrintZnach(float r)
{
znachenie=0;
arg=r;
for(int i=stepen-1; i>=0; i--)
znachenie+=pow(arg, i)*T[i];
cout<<"= "<<znachenie<<endl;
cout<<"Pri x ravnom "<<arg<<endl;
return znachenie;
}
class Polinom:public Mnog
{
private:
float chislo;
public:
void set_chislo(float);
Polinom summa(const Polinom & B);
Polinom multi(const Polinom & B);
Polinom(int a):Mnog(a) {};
~Polinom() {};
};
void Polinom::set_chislo(float r)
{
chislo=r;
cout<<"Mnogochlen ymnojen na "<<chislo<<endl;
for(int i=0; i<stepen; i++)
T[i]*=chislo;
}
Polinom Polinom::summa(const Polinom & t)
{
int size;
if (stepen<t.stepen) size=stepen;
else size=t.stepen;
for(int i=0; i<size; i++)
T[i]+=t.T[i];
return *this;
}
Polinom Polinom::multi(const Polinom & t)
{
int size;
if (stepen<t.stepen) size=stepen;
else size=t.stepen;
for(int i=0; i<size; i++)
T[i]*=t.T[i];
return *this;
}
int main()
{
Polinom A(4);
Polinom B(3);
A.PrintVid();
B.PrintVid();
cout<<"Proizvedenie mnogochlenov:";
Polinom C=A.multi(B);
C.PrintVid();
cout<<"Summa mnogochlenov:";
C=A.summa(B);
C.PrintVid();
system("pause");
}
Дата добавления: 2015-08-27; просмотров: 59 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
ноября 1337 года Эдуард III Английский объявил войну королю Франции Филиппу VI; это стало началом длительного противостояния, впоследствии названного Столетней войной. В тот же день, незадолго до 42 страница | | | Наследование и кровная месть (по материалам раннесредневековой скандинавии) |