Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Описать производный класс, позволяющий умножать многочлен на число и складывать многочлены.



Наследование 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 страница | Наследование и кровная месть (по материалам раннесредневековой скандинавии)

mybiblioteka.su - 2015-2024 год. (0.006 сек.)