//--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormActivate(TObject *Sender) { Memo1->Clear(); n = m = 0; Skaityti(); Memo1->Lines->Add("Duomenys ávesti ið failo: " + AnsiString(CDuom)); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender){ Skaiciuoti(); Label1->Visible = true; Label2->Visible = true; StringGrid1->Enabled = true; ListBox1->Enabled = true; Rodyti1(); Memo1->Lines->Add("Matrica A apskaièiuota"); Rodyti2(); Memo1->Lines->Add("Matrica X apskaièiuota"); Rodyti3(); Memo1->Lines->Add("Matrica Y apskaièiuota"); Button1->Enabled = false; Button2->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { MatricaIfaila("Matricos"); Memo1->Lines->Add("Matricos ásimintos faile: " + AnsiString(CRez)); Button2->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { AtmintisAtiduota(); Close(); } //--------------------------------------------------------------------------- void TForm1::Skaityti() { int i, j; FILE *FD; if( (FD = fopen(CDuom, "r")) != NULL ) { fscanf(FD, "%d%d\n", &n, &m); if(AtmintisSkirta() ) { Memo1->Lines->Add("Atmintis matricai skirta."); for (i = 0; i < n; i++) for (j = 0; j < m; j++) fscanf(FD, "%f", &Y[i][j]); int a; } else { ShowMessage("Nepakanka atminties!"); Close(); } fclose(FD); } else { ShowMessage("Failas" + String(CDuom) + " nerastas"); Close(); } } //--------------------------------------------------------------------------- bool TForm1::AtmintisSkirta() { try { Y = new float *[n]; for (int i = 0; i < n; i++) Y[i] = new float[m]; return true; } catch(...) { return false; } } //--------------------------------------------------------------------------- void TForm1::AtmintisAtiduota() { for(int i = 0; i < n; i++) delete [] Y[i]; delete [] Y; } //--------------------------------------------------------------------------- void TForm1::Rodyti1() { ListBox1->Items->Clear(); for (int i = 0; i < n; i++) ListBox1->Items->Add(IntToStr(A[i])); } //--------------------------------------------------------------------------- void TForm1::Rodyti2() { ListBox1->Items->Clear(); for (int j = 0; j < n; j++) ListBox1->Items->Add(IntToStr(X[j])); } //--------------------------------------------------------------------------- void TForm1::Rodyti3() { int i, j; StringGrid1->ColCount = m+1; StringGrid1->RowCount = n+1; for (j = 0; j < m; j++) StringGrid1->Cells[j+1][0] = "Stulp. " + IntToStr(j); for (i = 0; i < n; i++) StringGrid1->Cells[0][i+1] = "Eil. " + IntToStr(i); for (i = 0; i < n; i++) for (j = 0; j < m; j++) StringGrid1->Cells[j+1][i+1] = FloatToStrF(Y[i][j], ffFixed, 6, 2); } //--------------------------------------------------------------------------- void TForm1::MatricaIfaila(char *pav) { int i, j; FILE *FR; if( (FR = fopen(CRez, "a")) != NULL ) { fprintf(FR, " %s\n", pav); fprintf(FR, " "); for (j = 0; j < m; j++) fprintf(FR, "\n"); fprintf(FR, "\n"); fprintf(FR, " -"); for (j = 0; j < m; j++) fprintf(FR, "---------"); fprintf(FR, "--\n"); for (i = 0; i < n; i++) { fprintf(FR, "%4d |", i); for (j = 0; j < m; j++) fprintf(FR, "%7.2f", Y[i][j]); fprintf(FR, " |\n"); } fprintf(FR, " -"); for (j = 0; j < m; j++) fprintf(FR, "---------"); fprintf(FR, "--\n\n"); fclose(FR); } } //--------------------------------------------------------------------------- void TForm1::Skaiciuoti() { int i = 0, j = 0; for (i = 0; i < n; i++) for (j = 0; j < m; j++) Y[i][j] = A[i] * pow( X[j], 3.0 ) + pow( A[i] * sin(X[j]), 5.0); } //-----------------------------------------------------------------------