- •1 Постановка задачі
- •2 Алгоритм розробки програми
- •3 Практична реалізація
- •3.1 Опис структури даних та вимоги до них
- •3.2 Опис стандартних функцій, що використовувалися у програмі
- •3.3 Опис функцій користувача
- •3.4 Опис модулів та їх призначення
- •4 Інструкції для роботи з програмою
- •5 Приклади тестування та результати роботи програми
- •Висновки
- •Література
- •Додаток а Лістинг модуля FracUnit
- •Додаток б Лістинг модуля CalculateFrac
- •Додаток в Лістинг модуля AddUnit
- •Додаток г Лістинг модуля SumUnit
- •Додаток д Лістинг модуля MulytUnit
- •Додаток e Лістинг модуля DivUnit
- •Додаток ж Лістинг модуля SumMassibUnit
- •Додаток з Лістинг модуля SortUnit
Додаток e Лістинг модуля DivUnit
#include <vcl.h>
#pragma hdrstop
#include "DivUnit.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->DivFrac(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";
}
}
Додаток ж Лістинг модуля SumMassibUnit
#include "SumMasivUnit.h"
#include "FracUnit.h"
#include "CalculateFrac.h"
#include "Math.h"
int count=11,i;
//---------------------------------------------------------------------------
void __fastcall TSumMassivForm::Button4Click(TObject *Sender)
{
Button2->Enabled=true; Button1->Enabled=true; Button4->Enabled=false;
if(Edit1->Text.Length()==0)
{ ShowMessage("Поле має бути заповненим!");
return; }
count=StrToInt(Edit1->Text);
if(count<2)
{ ShowMessage("Допустима розмірність: більше '1'!");
return; }
count++;
StringGrid1->ColCount=count;
}
//---------------------------------------------------------------------------
void __fastcall TSumMassivForm::Button2Click(TObject *Sender)
{
Button2->Enabled=false; Button1->Enabled=false; Button4->Enabled=true;
count=11;
StringGrid1->ColCount=count;
for(i=1;i<count;i++)
{ StringGrid1->Cells[i][0]="";
StringGrid1->Cells[i][1]="";}
Edit1->Clear(); Edit2->Clear(); Edit3->Clear(); Edit4->Clear();}
void __fastcall TSumMassivForm::Button1Click(TObject *Sender)
{
int a,b,A=0,h=0,e=1;
for(int i=1;i<count;i++)
if((StringGrid1->Cells[i][0].Length()==0)||(StringGrid1->Cells[i][1].Length()==0))
{ ShowMessage("Заповнені не всі поля!");
return; }
CalculateFrac *Calculate=new CalculateFrac;
for(int i=1;i<count;i++)
{
a=StrToInt(StringGrid1->Cells[i][0]);
b=StrToInt(StringGrid1->Cells[i][1]);
if(b==0)
{
ShowMessage("Ділення на нуль!!");
return;
}
Calculate->AddFrac(a,b,h,e);
A+=Calculate->GetA(); h=Calculate->GetP(); e=Calculate->GetQ();
}
if(A!=0)
Edit4->Text=IntToStr(A);
if(h!=0)
{ Edit2->Text=IntToStr(h); Edit3->Text=IntToStr(e); }
if((A==0)&&(h==0)) Edit4->Text="0";
double S=A*e+h; double SA=S/e; SA/=(count-1);
Edit5->Text=FloatToStrF(SA,ffFixed,5,3);
Button1->Enabled=false;
}