Код:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#pragma hdrstop
#include "Unitmatmayatnik.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
StringGrid1->Cells[0][0]="t";
StringGrid1->Cells[1][0]="Q";
StringGrid1->Cells[2][0]="V";
StringGrid1->Cells[3][0]="E";
StringGrid1->Cells[4][0]="b";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float t0,tk,Q0,m,L,V0,dt1,dt2,Q,V,t,T,g,E,Esum,Esr,bsr,b,bsumkv,Vlin;
g=9.8;
m=StrToFloat(Edit1->Text);
L=StrToFloat(Edit2->Text);
Q0=StrToFloat(Edit3->Text);
t0=StrToFloat(Edit4->Text);
tk=StrToFloat(Edit5->Text);
V0=StrToFloat(Edit6->Text);
dt1=StrToFloat(Edit7->Text);
dt2=StrToFloat(Edit9->Text);
int n=(tk-t0)/dt1;
int f=dt1/dt2;
StringGrid1->RowCount=n+1;
StringGrid1->ColCount=5;
StringGrid1->FixedCols=0;
V=V0;
Q=Q0;
t=t0;
Esum=0;
bsumkv=0;
for (int i=0; i<=n; i++)
{
for (int k=0; k<=f; k++)
{
V=V-(g/L)*sin(Q)*dt2;
Q=Q+V*dt2;
t=t+dt2;
Vlin=L*V;
}
E=(m*Vlin*Vlin)/2+m*g*L*(1-cos(Q));
Esum=E+Esum;
Chart1->Series[0]->AddXY(t, Q);
Chart2->Series[0]->AddXY(t, V);
StringGrid1->Cells[0][i+1]=FloatToStr(t);
StringGrid1->Cells[1][i+1]=FloatToStr(Q);
StringGrid1->Cells[2][i+1]=FloatToStr(V);
StringGrid1->Cells[3][i+1]=FloatToStr(E);
}
Esr=Esum/n;
for (int i=0; i<=n; i++) {
b=fabs((Esr-(StrToFloat(StringGrid1->Cells[3][i+1])))/Esr);
bsumkv=b*b+bsumkv;
StringGrid1->Cells[4][i+1]=FloatToStr(b);
}
bsr=sqrt(bsumkv/n);
Edit11->Text=FloatToStr(Esr);
Edit12->Text=FloatToStr(bsr);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
float L,g,p,T;
p=3.14;
g=9.8;
L=StrToFloat(Edit2->Text);
T=2*p*sqrt(L/g);
Edit8->Text=FloatToStr(T);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Edit1->Clear();
Edit2->Clear();
Edit3->Clear();
Edit4->Clear();
Edit5->Clear();
Edit6->Clear();
Edit7->Clear();
Edit8->Clear();
Edit9->Clear();
Edit11->Clear();
Edit12->Clear();
Chart1->Series[0]->Clear();
Chart2->Series[0]->Clear();
StringGrid1->RowCount=1;
StringGrid1->ColCount=5;
StringGrid1->FixedCols=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
struct person{
char m1[20];
char L1[20];
char Q01[20];
char V01[20];
char t01[20];
char tk1[20];
char dt11[20];
char dt21[20];
};
FILE *f;
if (SaveDialog1->Execute()){
f = fopen(SaveDialog1->FileName.c_str(), "wb");
person dannie;
strcpy(dannie.m1,Edit1->Text.c_str());
strcpy(dannie.L1,Edit2->Text.c_str());
strcpy(dannie.Q01,Edit3->Text.c_str());
strcpy(dannie.V01,Edit6->Text.c_str());
strcpy(dannie.t01,Edit4->Text.c_str());
strcpy(dannie.tk1,Edit5->Text.c_str());
strcpy(dannie.dt11,Edit7->Text.c_str());
strcpy(dannie.dt21,Edit9->Text.c_str());
fwrite(&dannie, sizeof(person), 1,f); }
fclose (f);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
struct person{
char m1[20];
char L1[20];
char Q01[20];
char V01[20];
char t01[20];
char tk1[20];
char dt11[20];
char dt21[20];
};
FILE *f;
person dannie;
if (OpenDialog1->Execute()){
f = fopen(OpenDialog1->FileName.c_str(), "rb");
fread(&dannie, sizeof(person), 1,f);
Edit1->Clear();
Edit2->Clear();
Edit3->Clear();
Edit4->Clear();
Edit5->Clear();
Edit6->Clear();
Edit7->Clear();
Edit9->Clear();
Edit1->Text=dannie.m1;
Edit2->Text=dannie.L1;
Edit3->Text=dannie.Q01;
Edit4->Text=dannie.t01;
Edit5->Text=dannie.tk1;
Edit6->Text=dannie.V01;
Edit7->Text=dannie.dt11;
Edit9->Text=dannie.dt21;
}
fclose (f);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
}
У меня такой вопрос: какой программный код мне нужно вписать в 7 кнопку, чтобы при сохранении в текстовый файл таблицы у меня получалась таблица с ровными столбцами?