47778 (608369), страница 5
Текст из файла (страница 5)
float *vr, *x, *y, amp, dt, mx, *Sxx,*Sxx1;
std:: FILE *DR,*VR;
TListItem *ListItem;
Series1->Clear();
BarSeries1->Clear();
BarSeries2->Clear();
try {
float b=StrToFloat(BText->Text);
OpenDialog->Title="Загрузка файла с временным рядом";
if(OpenDialog->Execute()){
VR=std::fopen(OpenDialog->FileName.c_str(),"r");
fscanf(VR,"%f\n%d\n%f\n",&dt,&Nt,&);
//Чтение временного ряда
vr=(float*)malloc(Nt*sizeof(float));
x=(float*)malloc(Nt*sizeof(float));
y=(float*)malloc(Nt*sizeof(float));
Sxx=(float*)malloc(Nt*sizeof(float));
Sxx1=(float*)malloc(Nt*sizeof(float));
float ti=0.0;
ListView1->Items->Clear();
ListView1->Column[2]->Caption="Дискретный временной ряд";
ListView1->Column[3]->Caption="Центрированный временной ряд";
for(i=0;i Series1->AddXY(i,vr[i],"",clGreen); ListItem=ListView1->Items->Add(); ListItem->Caption=IntToStr(i); ListItem->SubItems->Add(FloatToStr(ti)); ListItem->SubItems->Add(FloatToStr(vr[i])); } SaveDialog->Title = "Сохранение файла грубой оценки"; int razm=ceil(log(Nt)/log(2)); int N1=pow(2,ceil(log(Nt)/log(2))); if (SaveDialog->Execute()){ DR = std::fopen(SaveDialog->FileName.c_str(), "w"); fprintf(DR,"%f\n%d\n%f\n",dt,N1,amp); for(i=0;i mx=me(vr,N1); for(i=0;i //Sxx[i]=x[i]; Sxx1[i]=y[i]; // ListItem=ListView1->Items->Item[i]; ListItem->SubItems->Add(FloatToStr(x[i])); } fft(x,y,N1,razm,1); // //fft(Sxx,Sxx1,N1,razm,1); // //smooth(N1,Sxx,x,1); smooth(N1,Sxx1,y,1); // for(i=0;i float b1=1/(dt*N1); for(i=0;i BarSeries1->AddXY(i*b1,Sxx[i],"",clTeeColor); ListItem=ListView1->Items->Item[i]; ListItem->SubItems->Add(FloatToStr(i*b1)); ListItem->SubItems->Add(FloatToStr(Sxx[i])); } fclose(DR); if(RadioGroup1->ItemIndex==1) { //Осреднение по частоте float s=0.0; int l=StrToInt(FreqEdit->Text); SaveDialog->Title="Сохранение файла оценки методом частотного осреднения"; if(SaveDialog->Execute()) {DR = std::fopen(SaveDialog->FileName.c_str(), "w"); fprintf(DR,"%f\n%d\n%f\n",dt,N1,amp); for(i=0;i for(j=i;j fprintf(DR,"%f\n",s/l); BarSeries2->AddXY(i*b1,s/l,"",clTeeColor); ListItem=ListView1->Items->Item[i]; ListItem->SubItems->Add(FloatToStr(i*b1)); ListItem->SubItems->Add(FloatToStr(s/l)); } fclose(DR); } }else if(RadioGroup1->ItemIndex==0){ // Осреднение по участкам SaveDialog->Title = "Сохранение файла оценки методом разбиения на участки"; int Ny=1/(dt*b); razm=ceil(log(Ny)/log(2)); Ny=pow(2,razm); if (SaveDialog->Execute()){ DR = std::fopen(SaveDialog->FileName.c_str(), "w"); fprintf(DR,"%f\n%d\n%f\n",dt,Ny,amp); int m=ceil(Nt/Ny); for(i=0;i for(j=0;j for(i=0;iNt) {x[i]=0;y[i]=0;} else {x[i]=vr[j*Ny+i];y[i]=0;} mx=me(x,Ny);for(i=0;i fft(x,y,Ny,razm,1); for(i=0;i } for(i=0;i fprintf(DR,"%f\n",Sxx[i]/m); float b1=1/(dt*Ny); BarSeries2->AddXY(i*b1,Sxx[i]/m,"",clTeeColor); ListItem=ListView1->Items->Item[i]; ListItem->SubItems->Add(FloatToStr(i*b1)); ListItem->SubItems->Add(FloatToStr(Sxx[i]/m)); } fclose(DR); } } } free(vr); free(x); free(y); free(Sxx); fclose(VR); } }catch(...) { Application->MessageBox("Проверь себя!!!","Ошибочка вышла", MB_OK);} } //--------------------------------------------------------------------------- void __fastcall TADC::Help1Click(TObject *Sender) { Form2->Visible=true; } //--------------------------------------------------------------------------- void __fastcall TADC::N5Click(TObject *Sender) { Form3->Visible=true; } //--------------------------------------------------------------------------- void __fastcall TADC::N6Click(TObject *Sender) { ADC->Close(); } //---------------------------------------------------------------------------















