Добавил:
masterdos
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовая работа / KURSOVA_ROBOTA / Дроби / SortUnit
.cpp#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];
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TSortForm *SortForm;
//---------------------------------------------------------------------------
__fastcall TSortForm::TSortForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TSortForm::FormActivate(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::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::Button3Click(TObject *Sender)
{
SortForm->Close();
MainForm->Show();
}
//---------------------------------------------------------------------------
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]);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TSortForm::Edit1KeyPress(TObject *Sender, char &Key)
{
if(((Key>='0')&&(Key<='9'))||(Key==VK_BACK))
return;
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TSortForm::StringGrid1KeyPress(TObject *Sender, char &Key)
{
if(((Key>='0')&&(Key<='9'))||(Key==VK_BACK)||(Key=='-'))
return;
Key=0;
}
//---------------------------------------------------------------------------
Соседние файлы в папке Дроби