Создали событие про нажатии на кнопку Вычислить

void CLabka8Dlg::OnButton1()

{

UpdateData();

if (m_x>m_y)

{

CA ob1;

ob1.Rd(m_x,m_y,m_z);

m_r=ob1.reza();

}

else

{

CB ob2;

ob2.Rd(m_x,m_y,m_z);

m_r=ob2.rezb();

}

UpdateData(false);

}

Интерфейсная часть класса Fn

class Fn: public CObject

{

protected:

float x,y,z; double r;

public:

Fn();

virtual ~Fn();

void Rd (float,float,float);

};

class CA: public Fn

{

public:

CA();

virtual ~CA();

float reza();

};

class CB: public Fn

{

public:

CB();

virtual ~CB();

float rezb();

};

Реализация класса Fn:

Инициализация переменных:

void Fn::Rd(float x1,float y1,float z1)

{x=x1; y=y1; z=z1; }

Конструкторы

Fn::Fn()

{}

CA::CA()

{}

CB::CB()

{}

Деструктор

Fn::~Fn()

{}

CA::~CA()

{}

CB::~CB()

{}

Вычисления по формуле А

float CA::reza()

{

if(z==0) {

AfxMessageBox("На ноль делить нельзя. Значение Z не может быть равно 0.");

return 0;

}

else

{

r=(1.0+pow(log10(x+y),2))/(z*pow(fabs(y-x),1.0/3.0));

return r;

}

}

Вычисления по формуле B

float CB::rezb()

{

if(z==0)

{

AfxMessageBox("На ноль делить нельзя. Значение Z не может быть равно 0.");

return 0;

}

else

{

r=(y*pow(cos(x)/sin(x),2))/(2.0*pow(z,5));

return r;

}

}

Исходные данные и протокол выполнения работы.

Ввод данных,

X=10, y=5, z=2.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: