Ученик-кочегар
Группа: Участник
Сообщений: 1
|
помогите пожалуйста!
Преподаватель спросил как сделать программу без этого участка
CODE | __fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Rows = StrToInt (Edit1->Text);
Vect0 = new double [Rows];
Vect1 = new double [Rows];
Vect2 = new double [Rows];
} |
и как исправить что бы она работала(правильно работала)
Потом пришли к вводу что работоспособность зависит от того где объявлены double *Vect0, *Vect1, *Vect2; int Rows;
Если сделать вот так должно было работать, но оказалось что она работает всегда...
Ктонибудь может сказать какая разница в том где идет объявление или посоветовать чтонибудь....очень нужно...
QUOTE |
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
double *Vect0, *Vect1, *Vect2; int Rows;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner
|
исходный код
QUOTE |
/---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <math.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Rows = StrToInt (Edit1->Text);
Vect0 = new double [Rows];
Vect1 = new double [Rows];
Vect2 = new double [Rows];
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Rows = StrToInt (Edit1->Text);
StringGrid1->RowCount = Rows + 1;
delete [] Vect0;
delete [] Vect1;
delete [] Vect2;
Vect0 = new double [Rows];
Vect1 = new double [Rows];
Vect2 = new double [Rows];
MyRand (Vect0);
MyRand (Vect1);
MyVectToGrid (Vect0, 0);
MyVectToGrid (Vect1, 1);
Button2->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
MyGridToVect (Vect0, 0);
MyGridToVect (Vect1, 1);
for (int i=0; i<Rows; ++i)
Vect2 [i] = pow(Vect0 [i] + Vect1 [i],2);
MyVectToGrid (Vect2, 2);
}
|
h файл
CODE | //---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Grids.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TStringGrid *StringGrid1;
TButton *Button1;
TEdit *Edit1;
TButton *Button2;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall Edit1Exit(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
double *Vect0, *Vect1, *Vect2; int Rows;
void __fastcall TForm1::MyVectToGrid (double* vec, int col)
{ for (int i = 0; i < Rows; ++i)
StringGrid1->Cells [col][i+1] = FloatToStrF(vec [i], ffFixed, 8, 2); }
void __fastcall TForm1::MyGridToVect (double* vec, int col)
{ for (int i = 0; i < Rows; ++i)
vec [i]= StrToFloat(StringGrid1->Cells [col][i+1]); }
void __fastcall TForm1::MyRand (double* vec)
{
for (int i = 0; i < Rows; ++i) vec [i] = random (10); }
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif | |