Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Звіт практика 2.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
410.69 Кб
Скачать

Додаток б Реалізація класів. Cpp-файл

#include <vcl.h>

#pragma hdrstop

#include "calc.h"

#include "Unit2.h"

#include "ComplexM.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

complex x,y,Result=complex(1e308,0);

__fastcall TForm1::TForm1(TComponent* Owner):TForm(Owner)

{}

void __fastcall TForm1::ToolButtonAddClick(TObject *Sender)

{Result=StrToCompl(Edit1->Text)+StrToCompl(Edit2->Text);

PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Z1+Z2=";}

void __fastcall TForm1::SubReverseClick(TObject *Sender)

{Result=StrToCompl(Edit2->Text)-StrToCompl(Edit1->Text);

PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Z2-Z1=";}

void __fastcall TForm1::ToolButtonMulClick(TObject *Sender)

{Result=StrToCompl(Edit1->Text)*StrToCompl(Edit2->Text);

PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Z1*Z2=";}

void __fastcall TForm1::ToolButtonDivClick(TObject *Sender)

{try{ x=StrToCompl(Edit1->Text); y=StrToCompl(Edit2->Text); Result=x/y;

PanelResult->Caption=ComplToStr(Result);}

catch(...){PanelResult->Caption="INF"; } PanelOp->Caption="Z1/Z2=";}

void __fastcall TForm1::DivReverseClick(TObject *Sender)

{try{ x=StrToCompl(Edit2->Text); y=StrToCompl(Edit1->Text); Result=x/y;

PanelResult->Caption=ComplToStr(Result);}

catch(...){PanelResult->Caption="INF";} PanelOp->Caption="Z2/Z1=";}

void __fastcall TForm1::ToolButtonPowClick(TObject *Sender)

{try{ x=StrToCompl(Edit1->Text); y=StrToCompl(Edit2->Text);

if(x!=0||y!=0) PanelResult->Caption=ComplToStr(x^y);

else PanelResult->Caption="NAN";}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Z1^Z2=";}

void __fastcall TForm1::PopMODClick(TObject *Sender)

{if(CheckBox1->Checked==true){

Result=mod(StrToCompl(Edit1->Text));

PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="MOD[Z1]=";}

if(CheckBox2->Checked==true){

Result=mod(StrToCompl(Edit2->Text));

PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="MOD[Z2]=";}}

void __fastcall TForm1::PopARGClick(TObject *Sender)

{if(CheckBox1->Checked==true){

Result=arg(StrToCompl(Edit1->Text));

PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Arg[Z1]=";}

if(CheckBox2->Checked==true){

Result=arg(StrToCompl(Edit2->Text));

PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Arg[Z2]=";}}

void __fastcall TForm1::PopSQRClick(TObject *Sender)

{if(CheckBox1->Checked==true){

Result=sqrt(StrToCompl(Edit1->Text));

PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Sqr[Z1]=";}

if(CheckBox2->Checked==true){

Result=sqrt(StrToCompl(Edit2->Text));

PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Sqr[Z2]=";}}

void __fastcall TForm1::PopEXPClick(TObject *Sender)

{if(CheckBox1->Checked==true){

try{ x=StrToCompl(Edit1->Text);

if(real(x)<=709.782226) PanelResult->Caption=ComplToStr(exp(x));

else PanelResult->Caption="INF";}

catch(...){ PanelResult->Caption="INF";} PanelOp->Caption="Exp[Z1]=";}

if(CheckBox2->Checked==true){

try{ x=StrToCompl(Edit2->Text);

if(real(x)<=709.782226) PanelResult->Caption=ComplToStr(exp(x));

else PanelResult->Caption="INF";}

catch(...){ PanelResult->Caption="INF";} PanelOp->Caption="Exp[Z2]=";}}

void __fastcall TForm1::PopLOGClick(TObject *Sender)

{if(CheckBox1->Checked==true){

try{ x=StrToCompl(Edit1->Text); if(x!=0) PanelResult->Caption=ComplToStr(log(x));

else PanelResult->Caption="INF";}

catch(...){PanelResult->Caption="INF";} PanelOp->Caption="ln[Z1]=";}

if(CheckBox2->Checked==true){

try{ x=StrToCompl(Edit2->Text); if(x!=0) PanelResult->Caption=ComplToStr(log(x));

else PanelResult->Caption="INF";}

catch(...){PanelResult->Caption="INF";} PanelOp->Caption="ln[Z2]=";}}

void __fastcall TForm1::PopSaveTo1Click(TObject *Sender)

{ Edit1->Text=PanelResult->Caption; }

void __fastcall TForm1::PopSaveTo2Click(TObject *Sender)

{ Edit2->Text=PanelResult->Caption; }

void __fastcall TForm1::PopFormatALGClick(TObject *Sender)

{ COMPLEX_FORMAT=false; }

void __fastcall TForm1::PopFormatComClick(TObject *Sender)

{ COMPLEX_FORMAT=true; }

void __fastcall TForm1::PopChangeClick(TObject *Sender)

{ String T = Edit1->Text; Edit1->Text = Edit2->Text; Edit2->Text = T; PanelOp->Caption=""; }

void __fastcall TForm1::Edit2Enter(TObject *Sender)

{ PanelOp->Caption=""; }

void __fastcall TForm1::Edit1Enter(TObject *Sender)

{ PanelOp->Caption=""; }

void __fastcall TForm1::PanelZFMouseDown(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

{PopupMenuFormat->Popup(Form1->Left+PanelZF->Left,

Form1->Top+PanelZF->Top);}

void __fastcall TForm1::Edit1MouseDown(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

{ if(Button==mbRight){ PanelOp->Caption=""; Edit1->Text="";}}

void __fastcall TForm1::Edit2MouseDown(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

{if(Button==mbRight){PanelOp->Caption=""; Edit2->Text="";}}

void __fastcall TForm1::FormCreate(TObject *Sender)

{COMPLEX_FORMAT=true;}

void __fastcall TForm1::PopSaveTo3Click(TObject *Sender)

{ Panel3->Caption=PanelResult->Caption;}

void __fastcall TForm1::PopUpR1toR2Click(TObject *Sender)

{Edit2->Text=Edit1->Text;}

void __fastcall TForm1::PopUpR1toR3Click(TObject *Sender)

{Panel3->Caption=Edit1->Text;}

void __fastcall TForm1::PopUpR12Click(TObject *Sender)

{String T = Edit1->Text; Edit1->Text = Edit2->Text; Edit2->Text = T;}

void __fastcall TForm1::PopUpR2toR1Click(TObject *Sender)

{Edit1->Text=Edit2->Text; PanelOp->Caption=""; }

void __fastcall TForm1::PopUpR2toR3Click(TObject *Sender)

{Panel3->Caption=Edit2->Text; PanelOp->Caption="";}

void __fastcall TForm1::PopUpR21Click(TObject *Sender)

{String T = Edit1->Text; Edit1->Text = Edit2->Text; Edit2->Text = T; PanelOp->Caption="";}

void __fastcall TForm1::PopUpR23Click(TObject *Sender)

{String T = Panel3->Caption; Panel3->Caption = Edit2->Text; Edit2->Text = T; PanelOp->Caption="";}

void __fastcall TForm1::PopUpR3toR1Click(TObject *Sender)

{ Edit1->Text=Panel3->Caption;}

void __fastcall TForm1::PopUpR3toR2Click(TObject *Sender)

{ Edit2->Text=Panel3->Caption;}

void __fastcall TForm1::PopUpR31Click(TObject *Sender)

{ String T = Panel3->Caption; Panel3->Caption = Edit1->Text; Edit1->Text = T;PanelOp->Caption=""; }

void __fastcall TForm1::PopUpR32Click(TObject *Sender)

{ String T = Panel3->Caption; Panel3->Caption = Edit2->Text; Edit2->Text = T; PanelOp->Caption=""; }

void __fastcall TForm1::PanelZ3MouseDown(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

{PopupMenuZ3->Popup(Form1->Left+PanelZ3->Left,

Form1->Top+PanelZ3->Top);}

void __fastcall TForm1::PanelZ2MouseDown(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

{PopupMenuZ2->Popup(Form1->Left+PanelZ2->Left,

Form1->Top+PanelZ2->Top);}

void __fastcall TForm1::PanelZ1MouseDown(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

{PopupMenuZ1->Popup(Form1->Left+PanelZ1->Left,

Form1->Top+PanelZ1->Top);}

void __fastcall TForm1::PowReverseClick(TObject *Sender)

{try{ x=StrToCompl(Edit1->Text); y=StrToCompl(Edit2->Text);

if(x!=0||y!=0) PanelResult->Caption=ComplToStr(y^x);

else PanelResult->Caption="NAN";}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Z2^Z1=";}

void __fastcall TForm1::N1Click(TObject *Sender)

{if(CheckBox1->Checked==true){

try{ x=StrToCompl(Edit1->Text);

if(real(x)<=709.782226) PanelResult->Caption=ComplToStr(~(x));

else PanelResult->Caption="INF";}

catch(...){ PanelResult->Caption="INF";} PanelOp->Caption="~(Z1)=";}

if(CheckBox2->Checked==true){

try{ x=StrToCompl(Edit2->Text);

if(real(x)<=709.782226) PanelResult->Caption=ComplToStr(~(x));

else PanelResult->Caption="INF";}

catch(...){ PanelResult->Caption="INF";} PanelOp->Caption="~(Z2)=";}}

void __fastcall TForm1::N3Click(TObject *Sender)

{exit(0); }

void __fastcall TForm1::N2Click(TObject *Sender)

{Application->MessageBox("Комплексный калькулятор, версия 1.1","Комплексный калькулятор",MB_OK);}

void __fastcall TForm1::CheckBox1Click(TObject *Sender)

{if(CheckBox1->Checked==true){CheckBox2->Checked=false;}}

void __fastcall TForm1::CheckBox2Click(TObject *Sender)

{if(CheckBox2->Checked==true){CheckBox1->Checked=false;}}

void __fastcall TForm1::Button1Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(1);

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(1);}

void __fastcall TForm1::Button2Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(2);

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(2);}

void __fastcall TForm1::Button3Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(3);

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(3);}

void __fastcall TForm1::Button4Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(4);

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(4);}

void __fastcall TForm1::Button5Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(5);

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(5);}

void __fastcall TForm1::Button6Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(6);

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(6);}

void __fastcall TForm1::Button7Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(7);

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(7);}

void __fastcall TForm1::Button8Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(8);

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(8);}

void __fastcall TForm1::Button9Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(9);

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(9);}

void __fastcall TForm1::Button10Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(0);

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(0);}

void __fastcall TForm1::Button13Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+"i";

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+"i";}

void __fastcall TForm1::Button11Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+"+";

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+"+";}

void __fastcall TForm1::Button12Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+"-";

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+"-";}

void __fastcall TForm1::All_clear(TObject *Sender)

{Edit1->Text="";

Edit2->Text="";

Panel3->Caption="";

PanelResult->Caption="";

PanelOp->Caption="";

CheckBox1->Checked=false;

CheckBox2->Checked=false;

deg->Checked=false;}

void __fastcall TForm1::Z1_clear(TObject *Sender)

{Edit1->Text="";}

void __fastcall TForm1::Z2_clear(TObject *Sender)

{Edit2->Text=""; }

void __fastcall TForm1::Z3_clear(TObject *Sender)

{Panel3->Caption=""; }

void __fastcall TForm1::Z_clear(TObject *Sender)

{PanelResult->Caption="";

PanelOp->Caption="";}

void __fastcall TForm1::ToolButtonSubClick(TObject *Sender)

{Result=StrToCompl(Edit1->Text)-StrToCompl(Edit2->Text);

PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Z1-Z2=";}

void __fastcall TForm1::KonvertClick(TObject *Sender)

{Form2->Visible=true;}

//---------------------------------------------------------------------------

void __fastcall TForm1::ClearMouseDown(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

{PopupMenuClear->Popup(Form1->Left+Clear->Left,

Form1->Top+Clear->Top);}

void __fastcall TForm1::SIN1Click(TObject *Sender)

{double f;

if(CheckBox1->Checked==true){

if(deg->Checked==true){

try{ f=StrToFloat(Edit1->Text);

f=f*pi/180;

PanelResult->Caption=FloatToStr(sin(f));}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Sin[Z1]=";}

else{ try{ x=StrToCompl(Edit1->Text);

if(x!=0) PanelResult->Caption=ComplToStr(sin(x));

else PanelResult->Caption="INF";}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Sin[Z1]=";}}

if(CheckBox2->Checked==true){

if(deg->Checked==true){

try{ f=StrToFloat(Edit2->Text);

f=f*pi/180;

PanelResult->Caption=FloatToStr(sin(f));}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Sin[Z2]=";}

else{ try{ x=StrToCompl(Edit2->Text);

if(x!=0) PanelResult->Caption=ComplToStr(sin(x));

else PanelResult->Caption="INF";}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Sin[Z2]=";}}}

void __fastcall TForm1::COS1Click(TObject *Sender)

{double f;

if(CheckBox1->Checked==true){

if(deg->Checked==true){

try{ f=StrToFloat(Edit1->Text);

f=f*pi/180;

PanelResult->Caption=FloatToStr(cos(f));}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Cos[Z1]=";}

else{ try{ x=StrToCompl(Edit1->Text);

if(x!=0) PanelResult->Caption=ComplToStr(cos(x));

else PanelResult->Caption="INF";}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Cos[Z1]=";}}

if(CheckBox2->Checked==true){

if(deg->Checked==true){

try{ f=StrToFloat(Edit2->Text);

f=f*pi/180;

PanelResult->Caption=FloatToStr(cos(f));}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Cos[Z2]=";}

else{ try{ x=StrToCompl(Edit2->Text);

if(x!=0) PanelResult->Caption=ComplToStr(cos(x));

else PanelResult->Caption="INF";}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Cos[Z2]=";}}}

void __fastcall TForm1::TAN1Click(TObject *Sender)

{double f;

if(CheckBox1->Checked==true){

if(deg->Checked==true){

try{ f=StrToFloat(Edit1->Text);

f=f*pi/180;

PanelResult->Caption=FloatToStr(tan(f));}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Tan[Z1]=";}

else{ try{ x=StrToCompl(Edit1->Text);

if(x!=0) PanelResult->Caption=ComplToStr(tan(x));

else PanelResult->Caption="INF";}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Tan[Z1]=";}}

if(CheckBox2->Checked==true){

if(deg->Checked==true){

try{ f=StrToFloat(Edit2->Text);

f=f*pi/180;

PanelResult->Caption=FloatToStr(tan(f));}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Tan[Z2]=";}

else{ try{ x=StrToCompl(Edit2->Text);

if(x!=0) PanelResult->Caption=ComplToStr(tan(x));

else PanelResult->Caption="INF";}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Tan[Z2]=";}}}

void __fastcall TForm1::SINH1Click(TObject *Sender)

{double f;

if(CheckBox1->Checked==true){

if(deg->Checked==true){

try{ f=StrToFloat(Edit1->Text);

f=f*pi/180;

PanelResult->Caption=FloatToStr(sinh(f));}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Sinh[Z1]=";}

else{ try{ x=StrToCompl(Edit1->Text);

if(x!=0) PanelResult->Caption=ComplToStr(sinh(x));

else PanelResult->Caption="INF";}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Sinh[Z1]=";}}

if(CheckBox2->Checked==true){

if(deg->Checked==true){

try{ f=StrToFloat(Edit2->Text);

f=f*pi/180;

PanelResult->Caption=FloatToStr(sinh(f));}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Sinh[Z2]=";}

else{ try{ x=StrToCompl(Edit2->Text);

if(x!=0) PanelResult->Caption=ComplToStr(sinh(x));

else PanelResult->Caption="INF";}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Sinh[Z2]=";}}}

void __fastcall TForm1::COSH1Click(TObject *Sender)

{double f;

if(CheckBox1->Checked==true){

if(deg->Checked==true){

try{ f=StrToFloat(Edit1->Text);

f=f*pi/180;

PanelResult->Caption=FloatToStr(cosh(f));}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Cosh[Z1]=";}

else{ try{ x=StrToCompl(Edit1->Text);

if(x!=0) PanelResult->Caption=ComplToStr(cosh(x));

else PanelResult->Caption="INF";}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Cosh[Z1]=";}}

if(CheckBox2->Checked==true){

if(deg->Checked==true){

try{ f=StrToFloat(Edit2->Text);

f=f*pi/180;

PanelResult->Caption=FloatToStr(cosh(f));}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Cosh[Z2]=";}

else{ try{ x=StrToCompl(Edit2->Text);

if(x!=0) PanelResult->Caption=ComplToStr(cosh(x));

else PanelResult->Caption="INF";}

catch(...){PanelResult->Caption="INF";}

PanelOp->Caption="Cosh[Z2]=";}}}

void __fastcall TForm1::Button14Click(TObject *Sender)

{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+"3.1415926535897932384626433832795";

if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+"3.1415926535897932384626433832795";}