Скачиваний:
0
Добавлен:
30.05.2020
Размер:
7.68 Кб
Скачать
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "math.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::FormCreate(TObject *Sender)
{
Memo1->Clear(); Memo2->Clear();
Edit1->Hide();Label1->Hide();Edit1->Clear();
Edit2->Hide();Label2->Hide();Edit2->Clear();
Edit3->Hide();Label3->Hide();Edit3->Clear();
Edit4->Hide();Label4->Hide();Edit4->Clear();
Edit5->Hide();Label8->Hide();Edit5->Clear();
Edit6->Hide();Edit6->Clear();
Edit7->Hide();Edit7->Clear();
Edit8->Hide();Edit8->Clear();
Edit9->Hide();Edit9->Clear();
Memo1->Lines->Add("Вибіріть задачу для виводу необхідних змінних на екран.");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a, b, c, d, da, db, dc, a1x, a1y, a2x, a2y, a3x, a3y, a4x, a4y;
double storonaA, storonaB, storonaC, pivP, ploshaT, zmA, zmB, zmC;
Memo2->Clear();
switch(RadioGroup1->ItemIndex)
{
case 0:
{
try
{
   a=StrToFloat(Edit1->Text);
   b=StrToFloat(Edit2->Text);
   c=StrToFloat(Edit3->Text);
   d=StrToFloat(Edit4->Text);
}
catch (EConvertError &e)
{
   ShowMessage("Помилка. Змінні мають бути цілим числом.");
   return;
}
if(a==d) Memo2->Lines->Add("Число А рівне числу D.\n");
if(b==d) Memo2->Lines->Add("Число B рівне числу D.\n");
if(c==d) Memo2->Lines->Add("Число C рівне числу D.\n");
if((a!=d)&&(b!=d)&&(c!=d))
{
da=d-a;
db=d-b;
dc=d-c;
Memo2->Lines->Add("Жодне з чисел не рівне D.\nMax("+FloatToStrF(da,ffFixed,8,0)+","+FloatToStrF(db,ffFixed,8,0)+","+FloatToStrF(dc,ffFixed,8,0)+").");
}
}break;
case 1:
{
Memo2->Clear();
try
{
   a1x=StrToFloat(Edit1->Text);
   a2x=StrToFloat(Edit2->Text);
   a3x=StrToFloat(Edit3->Text);
   a4x=StrToFloat(Edit5->Text);
   a1y=StrToFloat(Edit6->Text);
   a2y=StrToFloat(Edit7->Text);
   a3y=StrToFloat(Edit8->Text);
   a4y=StrToFloat(Edit9->Text);
}
catch (EConvertError &e)
{
   ShowMessage("Помилка. Координати мають бути цілим числом.");
   return;
}
if((a1x==a2x==a3x==a4x)&&(a1y==a2y==a3y==a4y)) Memo2->Lines->Add("Це одна точка");
else
if((a1y==a4y)&&(a2y==a3y)&&(abs(a1x-a2x)==abs(a3x-a4x))) Memo2->Lines->Add("Точки э вершинами паралелограма.");
else
Memo2->Lines->Add("Точки не э вершинами паралелограма.");
}break;
case 2:
{
Memo2->Clear();
try
{
   a1x=StrToFloat(Edit1->Text);
   a2x=StrToFloat(Edit2->Text);
   a3x=StrToFloat(Edit3->Text);
   a1y=StrToFloat(Edit6->Text);
   a2y=StrToFloat(Edit7->Text);
   a3y=StrToFloat(Edit8->Text);
}
catch (EConvertError &e)
{
   ShowMessage("Помилка. Координати мають бути цілим числом.");
   return;
}
if((a1x==a2x==a3x)&&(a1y==a2y==a3y)) Memo2->Lines->Add("Це одна точка");
else
if((a1x==a2x)&&(a2x==a3x)) Memo2->Lines->Add("Точки знаходяться на одній прямій");
else
if((a1y==a2y)&&(a2y==a3y)) Memo2->Lines->Add("Точки знаходяться на одній прямій");
else
{
storonaA=sqrt((a1x-a2x)*(a1x-a2x)+(a1y-a2y)*(a1y-a2y));
storonaB=sqrt((a2x-a3x)*(a2x-a3x)+(a2y-a3y)*(a2y-a3y));
storonaC=sqrt((a3x-a1x)*(a3x-a1x)+(a3y-a1y)*(a3y-a1y));
pivP=(storonaA+storonaB+storonaC)/2;
ploshaT=sqrt(pivP*(pivP-storonaA)*(pivP-storonaB)*(pivP-storonaC));
Memo2->Lines->Add("Точки не знаходяться на одній прямій. Отже площа трикутника рівна "+FloatToStrF(ploshaT,ffFixed,8,2));

}
}break;
case 3:
{
Memo2->Clear();
try
{
   zmA=StrToFloat(Edit1->Text);
   zmB=StrToFloat(Edit2->Text);
   zmC=StrToFloat(Edit3->Text);
}
catch (EConvertError &e)
{
   ShowMessage("Помилка. Змінні мають бути дійсним або цілим числом.");
   return;
}
if((zmA>=zmB)&&(zmB>=zmC)) {zmA=2*zmA; zmB=2*zmB; zmC=2*zmC; Memo2->Lines->Add("Задовільняеться умова:а >= b >= c. Отже А="+FloatToStrF(zmA,ffFixed,8,2)+" B="+FloatToStrF(zmB,ffFixed,8,2)+" C="+FloatToStrF(zmC,ffFixed,8,2));}
else
{
zmA=abs(zmA); zmB=abs(zmB); zmC=abs(zmC); Memo2->Lines->Add("Не задовільняеться умова:а >= b >= c. Отже А="+FloatToStrF(zmA,ffFixed,8,2)+" B="+FloatToStrF(zmB,ffFixed,8,2)+" C="+FloatToStrF(zmC,ffFixed,8,2));}
}break;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
switch(RadioGroup1->ItemIndex)
{
case 0:
{
Edit1->Show();Label1->Show();Edit1->Clear();
Edit2->Show();Label2->Show();Edit2->Clear();
Edit3->Show();Label3->Show();Edit3->Clear();
Edit4->Show();Label4->Show();Edit4->Clear();
Edit5->Hide();Label8->Hide();Edit5->Clear();
Edit6->Hide();Edit6->Clear();
Edit7->Hide();Edit7->Clear();
Edit8->Hide();Edit8->Clear();
Edit9->Hide();Edit9->Clear();
Memo1->Clear(); Memo2->Clear();
Label1->Caption="A=";
Label2->Caption="B=";
Label3->Caption="C=";
Label7->Caption="Змінні:";
Memo1->Lines->Add("Дано три числа а, b, с. Визначити, яке з них рівне d. Якщо жодне не рівне d, то знайти max(d - а, d -b, d -с).");
}break;
case 1:
{
Edit1->Show();Label1->Show();Edit1->Clear();
Edit2->Show();Label2->Show();Edit2->Clear();
Edit3->Show();Label3->Show();Edit3->Clear();
Edit4->Hide();Label4->Hide();Edit4->Clear();
Edit6->Show();Edit6->Clear();
Edit7->Show();Edit7->Clear();
Edit8->Show();Edit8->Clear();
Edit9->Show();Edit9->Clear();
Memo1->Clear(); Memo2->Clear();
Label8->Show(); Edit5->Show(); Edit5->Clear();
Label1->Caption="A1=";
Label2->Caption="A2=";
Label3->Caption="A3=";
Label7->Caption="Координати Х та Y:";
Memo1->Lines->Add("Дано чотири точки А1(х1, у1), А2(x2,у2), А3(x3, у3), А4(х4, у4). Визначити, чи будуть вони вершинами паралелограма.");
}break;
case 2:
{
Edit1->Show();Label1->Show();Edit1->Clear();
Edit2->Show();Label2->Show();Edit2->Clear();
Edit3->Show();Label3->Show();Edit3->Clear();
Edit4->Hide();Label4->Hide();Edit4->Clear();
Edit6->Show();Edit6->Clear();
Edit7->Show();Edit7->Clear();
Edit8->Show();Edit8->Clear();
Edit9->Hide();Edit9->Clear();
Memo1->Clear(); Memo2->Clear();
Label8->Hide(); Edit5->Hide(); Edit5->Clear();
Label1->Caption="A=";
Label2->Caption="B=";
Label3->Caption="C=";
Label7->Caption="Координати Х та Y:";
Memo1->Lines->Add("Дано три крапки А1(х1, у1), B(х2, у2), і C(х3, у3). Визначити, чи будуть вони розташовані на одній прямій. Якщо ні, то обчислити площу ABC.");
}break;
case 3:
{
Edit1->Show();Label1->Show();Edit1->Clear();
Edit2->Show();Label2->Show();Edit2->Clear();
Edit3->Show();Label3->Show();Edit3->Clear();
Edit4->Hide();Label4->Hide();Edit4->Clear();
Edit6->Hide();Edit6->Clear();
Edit7->Hide();Edit7->Clear();
Edit8->Hide();Edit8->Clear();
Edit9->Hide();Edit9->Clear();
Memo1->Clear(); Memo2->Clear();
Label8->Hide(); Edit5->Hide(); Edit5->Clear();
Label1->Caption="A=";
Label2->Caption="B=";
Label3->Caption="C=";
Label7->Caption="Дійсні числа:";
Memo1->Lines->Add("Дані дійсні числа а, b, с. Подвоїти ці числа, якщо а >= b >= c, і замінити їх абсолютними значеннями, якщо це не так.");
}break;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Edit1->Clear();
Edit2->Clear();
Edit3->Clear();
Edit4->Clear();
Edit5->Clear();
Edit6->Clear();
Edit7->Clear();
Edit8->Clear();
Edit9->Clear();
Memo2->Clear();
}
//---------------------------------------------------------------------------

Соседние файлы в папке 2
  • #
    30.05.20203.62 Кб0Project1.bpr
  • #
    30.05.20201.07 Кб0Project1.cpp
  • #
    30.05.2020422.95 Кб0Project1.obj
  • #
    30.05.2020876 б0Project1.res
  • #
    30.05.2020851.97 Кб0Project1.tds
  • #
    30.05.20207.68 Кб0Unit1.cpp
  • #
    30.05.202051 б0Unit1.ddp
  • #
    30.05.20206.37 Кб1Unit1.dfm
  • #
    30.05.20201.59 Кб0Unit1.h
  • #
    30.05.2020501.41 Кб0Unit1.obj
  • #
    30.05.20207.7 Кб1Unit1.~cpp