- •1 Постановка задачі
- •2 Алгоритм розробки програми
- •3 Практична реалізація
- •3.1 Опис структури даних та вимоги до них
- •3.2 Опис стандартних функцій, що використовувалися у програмі
- •3.3 Опис функцій користувача
- •3.4 Опис модулів та їх призначення
- •4 Інструкції для роботи з програмою
- •5 Приклади тестування та результати роботи програми
- •Висновки
- •Література
- •Додаток а Лістинг модуля FracUnit
- •Додаток б Лістинг модуля CalculateFrac
- •Додаток в Лістинг модуля AddUnit
- •Додаток г Лістинг модуля SumUnit
- •Додаток д Лістинг модуля MulytUnit
- •Додаток e Лістинг модуля DivUnit
- •Додаток ж Лістинг модуля SumMassibUnit
- •Додаток з Лістинг модуля SortUnit
Додаток з Лістинг модуля SortUnit
#include <vcl.h>
#pragma hdrstop
#include "SortUnit.h"
#include "FracUnit.h"
#include "CalculateFrac.h"
#include "Math.h"
int count=11,i;
int FracMassiv[20][2];
//---------------------------------------------------------------------------
void __fastcall TSortForm::Button2Click(TObject *Sender)
{
count=11;
Button2->Enabled=false; Button1->Enabled=false; Button4->Enabled=true;
StringGrid1->ColCount=count;
StringGrid2->ColCount=count;
for(i=1;i<count;i++)
{ StringGrid1->Cells[i][0]=""; StringGrid1->Cells[i][1]=""; StringGrid2->Cells[i][0]=""; StringGrid2->Cells[i][1]="";}
Edit1->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TSortForm::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)||(count>20))
{ ShowMessage("Допустима розмірність: від '2' до '20'!"); return;}
count++; StringGrid1->ColCount=count; StringGrid2->ColCount=count;
}
//---------------------------------------------------------------------------
void __fastcall TSortForm::Button1Click(TObject *Sender)
{
int a,b,c,d,e,f;
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++)
{ FracMassiv[i][0]=StrToInt(StringGrid1->Cells[i][0]); FracMassiv[i][1]=StrToInt(StringGrid1->Cells[i][1]);}
for(int i=1;i<count;i++)
{
for(int j=1;j<count-1;j++)
{ a=FracMassiv[j][0]; b=FracMassiv[j][1];
c=FracMassiv[j+1][0]; d=FracMassiv[j+1][1];
int check=Calculate->CheckFrac(a,b,c,d);
if (check==2)
{ e=a; f=b; a=c; b=d; c=e; d=f;
FracMassiv[j][0]=a; FracMassiv[j][1]=b; FracMassiv[j+1][0]=c; FracMassiv[j+1][1]=d; }
}
for(int i=1;i<count;i++)
{ StringGrid2->Cells[i][0]=IntToStr(FracMassiv[i][0]); StringGrid2->Cells[i][1]=IntToStr(FracMassiv[i][1]); }
}
}