All pastes #26909 Raw Edit

Mine

public cpp v1 · immutable
#26909 ·published 2005-10-28 10:24 UTC
rendered paste body
//==============================================================================// Autorius: Vaidas Matkus, IF - 5 / 4 grupe. 2005.10.27//------------------------------------------------------------------------------// koordinaciu plokstumoje yra daug trikampiu,// kuriu virsuniu tasku koordinates (x,y) zinomos.// Surasti didziausio ploto statu trikampi// ir jo virsuniu atstumus iki koordinaciu pradzios tasko.// padaryti ir naudoti funkcija, kuri skaiciuoja atstuma tarp dvieju duotu tasku.// spausdinti duomenis ir skaiciavimo rezultatus//------------------------------------------------------------------------------//==============================================================================#include <vcl.h>#pragma hdrstop#include <fstream>using namespace std;#include <math.h>#include "Unit1.h"//------------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//-- Paleidziamas programos langas TForm1---------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)        : TForm(Owner){ Valyti();}//-- Pirmojo mygtuko paspaudimas------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){ Ivesti(Duom, X, Y, a); Button2->Enabled = true;}//-- Antrojo mygtuko paspaudimas -----------------------------------------------void __fastcall TForm1::Button2Click(TObject *Sender){ Skaiciuoti(T, l); Didziausias(T, a, b, c); Button3->Enabled = true;}//---- Treciojo mygtuko paspaudimas --------------------------void __fastcall TForm1::Button3Click(TObject *Sender){ SpausdintiDuom(X, Y, a);}//-------- Ketvirto mygtuko paspaudimas-----------------------------------------void __fastcall TForm1::Button4Click(TObject *Sender){ Valyti();}//---- Penkto mygtuko paspaudimas-----------------------------------------------void __fastcall TForm1::Button5Click(TObject *Sender){ Close();}//--------------------------------------------------------------------------- //======================METODAI================================================//----------------------- Ivedimo Metodas --------------------------------------void TForm1::Ivesti(const char fv[], int A[], int B[], int &n){ n = 0;                                   //indeksui suteikiama pradine reiksme ifstream fd(fv);                         //atidaromas failas duomenu ivedimui while ( !fd.eof() &&  n < mas  ) {       //vykdomas ciklas kol nesibaige failas  fd>>A[n]>>B[n];                         //vedamos reiksmes i masyvus if (!fd.fail()) n++;                     //jei ivesta, indeksas padidinamas  }  fd.close();                             //uzdaromas ivedimo failas}//-- Atstumo tarp dvieju tiesiu skaiciavimo metodas ----------------------------int TForm1::Tiese(int G[], int H[], int u, int v, double &z){   z = pow(G[u] - G[v], 2) + pow(H[u] - H[v],2);    return z;}//-- Staciu trikampiu ploto skaiciavimo metodas --------------------------------void TForm1::Skaiciuoti(double D[], int &l) { double t1 = 0;   double t2 = 0;   double t3 = 0;    l = 0;   for (int i = 0; i < a; i++)              //imamas pirmasis taskas    for (int j = 0; j < a; j++)             //imamas antrasis taskas     if ( j != i )                          //tikrinama ar indeksai nelygus      for (int k = 0; k < a; k++)       if (( k != j) && ( k != i))          //tikrinama ar indeksai nelygus       {        abs(t1 = Tiese(X, Y, j, i, t1));    //skaiciuojama pirma tiese        abs(t2 = Tiese(X, Y, k, j, t2));    //skaiciuoajma antra tiese        abs(t3 = Tiese(X, Y, i, k, t3));    //skaiciuojama trecia tiese        if ((t1 + t2 == t3) && (t3 != 0))         {           D[l] = ( sqrt(t1) * sqrt(t2) ) / 2;           T1[l] = sqrt(Tiese(X, Y, i, 0, b));           T2[l] = sqrt(Tiese( X, Y, j, 0, b));           T3[l] = sqrt(Tiese(X, Y, k, 0, b));           l++;         }        if ( (t2 + t3 == t1) && ( t3 != 0) )         {           D[l] = ( sqrt(t2) * sqrt(t3) ) / 2;           T1[l] = sqrt(Tiese(X, Y, i, 0, b));           T2[l] = sqrt(Tiese( X, Y, j, 0, b));           T3[l] = sqrt(Tiese(X, Y, k, 0, b));           l++;         }       if ( (t1 + t3 == t2) && ( t3 != 0) ) {           D[l] == ( sqrt(t1) * sqrt (t3) ) /2;           T1[l] = sqrt(Tiese(X, Y, i, 0, b));           T2[l] = sqrt(Tiese( X, Y, j, 0, b));           T3[l] = sqrt(Tiese(X, Y, k, 0, b));           l++;          }       }}//------------------- Didziausios reiksmes ieskojimo metodas -------------------void TForm1::Didziausias(double F[], int &c, int &d, int &e){ double hj = F[0]; for (int i = 0; i < l; i++)   if ( F[i] > hj ) { hj = F[i]; c = i; d = i; e = i; }}//---------------------- Lauku isvalymo metodas --------------------------------void TForm1::Valyti(){Label1->Caption = "";   Label2->Caption = "";   Label3->Caption = "";   Label4->Caption = "";   ListBox1->Items->Clear();   ListBox2->Items->Clear();   Button2->Enabled = false;   Button3->Enabled = false;   }//------------------------ Spausdinimo metodas ---------------------------------void SpausdintiDuom(int A[],int B[],int a){  ListBox1->Items->Clear();  ListBox2->Items->Clear();  for (int i = 0; i < a; i++)   {    ListBox1->Items->Add(IntToStr(A[i]));   //    ListBox2->Items->Add(IntToStr(B[i]));   } Label1->Caption = hj; Label2->Caption = T1[a]; Label3->Caption = T2[b]; Label4->Caption = T3[c];}//========================================PABAIGA===============================