Архангельский А.Я. Программирование в C++ Builder, 7 изд., Бином, 2010. — 1304 с.
Бобровский С. Самоучитель программирования на C++ в системе C++ Builder. ДЕСС, 2003. — 810 с.
Культин Н.Б. Самоучитель C++ Builder., Высшая школа, 2006. — 380 с.
Архангельский А.Я. C++ Builder 6 справочное пособие, 2005. — 635 с.
Алексанкин Т.А. Borland C++, 2003 — 540 с.
Ермолаев В., Сорока Т. C++ Builder Книга рецептов, 2003. — 560 с.
Культин Н.Б. C++ Builder в задачах и примерах, 2000. — 400 с.
Бобровский С. Технологии C++ Builder., 2005. — 490 с.
Парта С. Язык программирования C++ Лекции и упражениния, 1999. – 630 с.
#include "FracUnit.h"
#include "AddUnit.h"
#include "CalculateFrac.h"
#include "SubUnit.h"
#include "MultUnit.h"
#include "DivUnit.h"
#include "PowUnit.h"
#include "RivnUnit.h"
#include "CheckUnit.h"
#include "SumMasivUnit.h"
#include "SortUnit.h"
//---------------------------------------------------------------------------
void __fastcall TMainForm::Button1Click(TObject *Sender)
{ MainForm->Close();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N2Click(TObject *Sender)
{ SumForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N3Click(TObject *Sender)
{ SubForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N4Click(TObject *Sender)
{ MultForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N5Click(TObject *Sender)
{ DivForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N6Click(TObject *Sender)
{ PowForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N8Click(TObject *Sender)
{ RivnForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N9Click(TObject *Sender)
{ CheckForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N11Click(TObject *Sender)
{ SumMassivForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N12Click(TObject *Sender)
{ SortForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
#include "Math.h"
class CalculateFrac{
public:
void AddFrac(int a, int b, int c, int d)
{
int zero=0;
int e=b*d;
int g=a*d+c*b;
if (g==0)
{
zero=1;
this->a=0;
}
else
{
if(abs(g)>=e)
{
this->a=g/e;
g=abs(g-=this->a*e);
if (g==0)
zero=1;
}
else
this->a=0;
}
if(zero==0)
{
this->p=(g/this->nod(abs(g),abs(e)));
this->q=(e/this->nod(abs(g),abs(e)));
}
else
{
this->p=0;
this->q=1;
}
}
void SubFrac(int a, int b, int c, int d)
{
int zero=0;
int e=b*d;
int g=a*d-c*b;
if (g==0)
{
zero=1;
this->a=0;
}
else
{
if(abs(g)>=e)
{
this->a=g/e;
g=abs(g-=this->a*e);
if (g==0)
zero=1;
}
else
this->a=0;
}
if(zero==0)
{
this->p=(g/this->nod(abs(g),abs(e)));
this->q=(e/this->nod(abs(g),abs(e)));
}
else
{this->p=0; this->q=1; }
}
void MultFrac(int a, int b, int c, int d)
{
int zero=0;
int g=a*c;
int e=b*d;
if (g==0)
{
zero=1;
this->a=0;
}
else
{
if(abs(g)>=e)
{this->a=g/e;g=abs(g-=this->a*e);if (g==0) zero=1;}
Else this->a=0;
}
if(zero==0)
{this->p=(g/this->nod(abs(g),abs(e)));
this->q=(e/this->nod(abs(g),abs(e)));}
else
{this->p=0; this->q=1;}
}
void DivFrac(int a, int b, int c, int d)
{
int zero=0;
int g=a*d;
int e=b*c;
if (g==0)
{
zero=1;
this->a=0;
}
else
{
if(abs(g)>=e)
{this->a=g/e; g=abs(g-=this->a*e);
if (g==0) zero=1; }
else this->a=0;
}
if(zero==0)
{this->p=(g/this->nod(abs(g),abs(e)));this->q=(e/this->nod(abs(g),abs(e))); }
else
{this->p=0; this->q=1; }
}
void PowFrac(int a, int b, int n)
{
MultFrac(a,b,a,b);
for(int i=1;i<n-1;i++)
MultFrac(this->p,this->q,a,b);
}
int RivnFrac(int a, int b, int c, int d)
{
int g=b*d;
int e=a*d;
int f=c*b;
if (e==f)
return 1;
else
return 0;
}
int CheckFrac(int a, int b, int c, int d)
{
int g=b*d;
int e=a*d;
int f=c*b;
if (e==f)
return 1;
else
if(e>f)
return 2;
else
return 3;
}
int GetP()
{
return this->p;
}
int GetQ()
{
return this->q;
}
int GetA()
{
return this->a;
}
private:
int p,q,a;
int nod(int x,int y)
{
while(x!=y)
{
if(x<y)
y-=x;
else
x-=y;
}
return x;
}
};
#include <vcl.h>
#pragma hdrstop
#include "AddUnit.h"
#include "FracUnit.h"
#include "CalculateFrac.h"
#include "Math.h"
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button2Click(TObject *Sender)
{Label3->Hide(); Label6->Hide();
Edit5->Hide(); Edit6->Hide(); Edit7->Hide();
Edit1->Clear(); Edit2->Clear(); Edit3->Clear(); Edit4->Clear(); Edit5->Clear();
Edit6->Clear(); Edit7->Clear();
Button1->Enabled=true;
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button3Click(TObject *Sender)
{ SumForm->Close();
MainForm->Show();}
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button1Click(TObject *Sender)
{ int a,b,c,d;
if(((Edit1->Text).Length()==0)||((Edit2->Text).Length()==0)||
((Edit3->Text).Length()==0)||((Edit4->Text).Length()==0))
{
ShowMessage("Заповніть всі поля!");
return;
}
a=StrToInt(Edit1->Text);
b=StrToInt(Edit2->Text);
c=StrToInt(Edit3->Text);
d=StrToInt(Edit4->Text);
if((d==0)||(b==0))
{
ShowMessage("Ділення на нуль!!");
return;
}
Button1->Enabled=false; Label3->Show();
CalculateFrac *Calculate=new CalculateFrac;
Calculate->AddFrac(a,b,c,d);
if(Calculate->GetA()!=0)
{
Edit5->Show();
Edit5->Text=IntToStr(Calculate->GetA());
}
if(Calculate->GetP()!=0)
{
Edit6->Show(); Edit7->Show(); Label6->Show();
Edit6->Text=IntToStr(Calculate->GetP());
Edit7->Text=IntToStr(Calculate->GetQ());
}
if((Calculate->GetA()==0)&&(Calculate->GetP()==0))
{
Edit5->Show();
Edit5->Text="0";
}
}
#include <vcl.h>
#pragma hdrstop
#include "SumUnit.h"
#include "FracUnit.h"
#include "CalculateFrac.h"
#include "Math.h"
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button2Click(TObject *Sender)
{Label3->Hide(); Label6->Hide();
Edit5->Hide(); Edit6->Hide(); Edit7->Hide();
Edit1->Clear(); Edit2->Clear(); Edit3->Clear(); Edit4->Clear(); Edit5->Clear();
Edit6->Clear(); Edit7->Clear();
Button1->Enabled=true;
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button3Click(TObject *Sender)
{ SumForm->Close();
MainForm->Show();}
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button1Click(TObject *Sender)
{ int a,b,c,d;
if(((Edit1->Text).Length()==0)||((Edit2->Text).Length()==0)||
((Edit3->Text).Length()==0)||((Edit4->Text).Length()==0))
{
ShowMessage("Заповніть всі поля!");
return;
}
a=StrToInt(Edit1->Text);
b=StrToInt(Edit2->Text);
c=StrToInt(Edit3->Text);
d=StrToInt(Edit4->Text);
if((d==0)||(b==0))
{
ShowMessage("Ділення на нуль!!");
return;
}
Button1->Enabled=false; Label3->Show();
CalculateFrac *Calculate=new CalculateFrac;
Calculate->SubFrac(a,b,c,d);
if(Calculate->GetA()!=0)
{
Edit5->Show();
Edit5->Text=IntToStr(Calculate->GetA());
}
if(Calculate->GetP()!=0)
{
Edit6->Show(); Edit7->Show(); Label6->Show();
Edit6->Text=IntToStr(Calculate->GetP());
Edit7->Text=IntToStr(Calculate->GetQ());
}
if((Calculate->GetA()==0)&&(Calculate->GetP()==0))
{
Edit5->Show();
Edit5->Text="0";
}
}
#include <vcl.h>
#pragma hdrstop
#include "MultUnit.h"
#include "FracUnit.h"
#include "CalculateFrac.h"
#include "Math.h"
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button2Click(TObject *Sender)
{Label3->Hide(); Label6->Hide();
Edit5->Hide(); Edit6->Hide(); Edit7->Hide();
Edit1->Clear(); Edit2->Clear(); Edit3->Clear(); Edit4->Clear(); Edit5->Clear();
Edit6->Clear(); Edit7->Clear();
Button1->Enabled=true;
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button3Click(TObject *Sender)
{ SumForm->Close();
MainForm->Show();}
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button1Click(TObject *Sender)
{ int a,b,c,d;
if(((Edit1->Text).Length()==0)||((Edit2->Text).Length()==0)||
((Edit3->Text).Length()==0)||((Edit4->Text).Length()==0))
{
ShowMessage("Заповніть всі поля!");
return;
}
a=StrToInt(Edit1->Text);
b=StrToInt(Edit2->Text);
c=StrToInt(Edit3->Text);
d=StrToInt(Edit4->Text);
if((d==0)||(b==0))
{
ShowMessage("Ділення на нуль!!");
return;
}
Button1->Enabled=false; Label3->Show();
CalculateFrac *Calculate=new CalculateFrac;
Calculate->Mult(a,b,c,d);
if(Calculate->GetA()!=0)
{
Edit5->Show();
Edit5->Text=IntToStr(Calculate->GetA());
}
if(Calculate->GetP()!=0)
{
Edit6->Show(); Edit7->Show(); Label6->Show();
Edit6->Text=IntToStr(Calculate->GetP());
Edit7->Text=IntToStr(Calculate->GetQ());
}
if((Calculate->GetA()==0)&&(Calculate->GetP()==0))
{
Edit5->Show();
Edit5->Text="0";
}
}