Форум программистов, компьютерный форум CyberForum.ru

Как переписать программу написанную в одной среде чтобы она работала в другой - C++

Восстановить пароль Регистрация
 
galachel
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 21
14.11.2012, 13:28     Как переписать программу написанную в одной среде чтобы она работала в другой #1
Программа написана с среде Borland Developer Studio, всё расчёты в программе происходят после нажатия кнопки на форме. Подскажите пожалуйста как эту программу переписать в Visual Studio 2005? Когда я создаю проект в Visual Studio 2005 как написано вот здесь http://www.cecs.csulb.edu/~pnguyen/U...dio%202005.htm
и вставляю туда код, написанный в Borland Developer Studio, то после нажатия Build Solution в Visual Studio 2005 выдаётся ошибка fatal error C1083: Cannot open include file: 'vcl.h': No such file or directory d:\atraktor\atraktor\atr.cpp 4
Подскажите, как устранить эту ошибку. Вот полный код программы, написанный в Borland Developer Studio
//$$---- Form CPP ----
//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <fstream.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double *x_x, *summ, *gistogr,*disper, *gistogr2, *gistogr2_1, *setka;
double alfa1, alfa2, ksi;
double *y1,*y2, *y3;
int nach_y1, nach_y2, nach_y3 ,r;
double h;
double pi;
double sigma;
long int N,M;
double A,B;
int hag, hag1,hag2,T, *count;
double min, max;
double a,b,a1,b1;//переменные минимума и максимума для построения дмумерной плотности
double MIN, MAX, MIN1, MAX1;//переменные минимума и максимума для построения дмумерной плотности
double minn,maxx,minn1,maxx1;

/*---------ВВод начальных данных-----------*/
h=0.001;
T=100;
N= int(T/h);
M=100;
sigma=1;
nach_y1=1;
nach_y2=1;
nach_y3=20;
r=19;
pi= 2*asin(1.0);
hag=40; //колличество интервалов разбиения для построения гистограммы
hag1=50; //колличество интервалов разбиения для построения двухмерной гистограммы
hag2=150;//колличество интервалов разбиения для построения двухмерного фазового портрета
/*-----------------------------------------*/


y1 =(double*)malloc(N*sizeof(double)); //Массив для расчета нужных функционалов
y2 =(double*)malloc(N*sizeof(double)); //
y3=(double*)malloc(N*sizeof(double)); //
summ =(double*)malloc(N*sizeof(double));//Массив для вторых моментов
x_x = (double*)malloc(N*sizeof(double));//Массив для расчета матожидания
disper = (double*)malloc(N*sizeof(double));//Массив для расчета дисперсии
gistogr = (double*)malloc(M*sizeof(double));// Массив для расчета гистограммы
gistogr2 = (double*)malloc(M*sizeof(double));//Вспомогательный массив для расчета двумерной гистограммы
gistogr2_1 = (double*)malloc(M*sizeof(double));//Вспомогательный массив для расчета двумерной гистограммы



for (int i = 0; i < N; i++)//Обнуление массивов
{
y1[i]=0;
y2[i]=0;
y3[i]=0;
summ[i]=0;
x_x[i]=0;
}


for (int i = 0; i < M; i++)
{
gistogr[i]=0;
gistogr2[i]=0;
gistogr2_1[i]=0;
}


y1[0] = nach_y1;
y2[0] = nach_y2;
y3[0] = nach_y3;
x_x[0] = x_x[0]+y1[0]/M;
summ[0]=summ[0]+(double)(y1[0]*y1[0])/M;


minn=y1[0];
maxx=minn;
minn1=y2[0];
maxx1=minn1;

FILE * yy1;
FILE * yy2;
yy1=fopen("вспомогательный_файл_для построения_2мерного_портрета_yy1.txt", "w");
yy2=fopen("вспомогательный_файл_для построения_2мерного_портрета_yy2.txt", "w");

for(int j = 0; j < M; j++)//цыкл для моделирования M штук траекторий
{

for(int i=0; i<N; i++)//цыкл для моделирования 1 траектории
{

alfa1 = (double)rand()/(double)RAND_MAX;
while(alfa1 == 0)
alfa1 = (double)rand()/(double)RAND_MAX;
alfa2 = (double)rand()/(double)RAND_MAX;
ksi = sqrt(-2*log(alfa1))*sin(2*pi*alfa2);//моделирование гаусовской случайной величины

y1[i+1] = y1[i]-h*10*(y1[i]-y2[i]);
y2[i+1] = y2[i]+h*(-y2[i]-y1[i]*y3[i]+r*y1[i])+sigma*y1[i]*(sqrt(h))*ksi;
y3[i+1] = y3[i]+h*(-(8/3)*y3[i]+y1[i]*y2[i]);
x_x[i+1]=x_x[i+1]+y1[i+1]/M; //Расчитывается оценка математического ожидания
summ[i+1]=summ[i+1]+(double)(y1[i+1]*y1[i+1])/M;//Расчитывается второй момент

fprintf(yy1, "%f " , y1[i]);
fprintf(yy2, "%f " , y2[i]);

if (y1[i]<minn)//Нахождение минимального и максимального эдемента в массивах y1 и y2
{
minn=y1[i];
}

if (y1[i]>maxx)
{
maxx=y1[i];
}

if (y2[i]<minn1)
{
minn1=y2[i];
}

if (y2[i]>maxx1)
{
maxx1=y2[i];
}

}
gistogr[j]=y1[N-1];
gistogr2[j]=y1[N-1];
gistogr2_1[j]=y3[N-1];
}

fclose(yy1);
fclose(yy2);

for (int i = 0; i <N; i++) // Расчет оценки дисперсии
disper[i]=summ[i]-(x_x[i]*x_x[i]);

FILE * date_y1;
FILE * date_y2;
FILE * date_y3;
FILE * matogidanie;
FILE * dispersiya;
FILE * razbienie;
date_y1 = fopen("Данные_Y1.txt","w");
date_y2 = fopen("Данные_Y2.txt","w");
date_y3 = fopen("Данные_Y3.txt","w");
matogidanie = fopen("Значение_матожидания.txt","w");
dispersiya = fopen("Значение_Дисперсии.txt","w");
razbienie = fopen("Разбиение_оси_абсцисс.txt","w");
for (int i = 0; i <N; i++)
{
fprintf( date_y1, "%f " , y1[i] );
fprintf( date_y2, "%f " , y2[i] );
fprintf( date_y3, "%f " , y3[i] );
fprintf( dispersiya , "%f " , disper[i] );
fprintf( matogidanie, "%f " , x_x[i] );
fprintf( razbienie, "%f " , h*i );

}
fclose(date_y1);
fclose(date_y2);
fclose(date_y3);
fclose(matogidanie);
fclose(dispersiya);
fclose(razbienie);


/*-------------------Начало построения гистограммы--------------------*/


min=gistogr[0];
max=min;
for (int i=1; i <M; i++) // цикл для определения максимального и минимального элемента
{
if (gistogr[i]<min)
{
min=gistogr[i];
}
if (gistogr[i]>max)
{
max=gistogr[i];
}
}
A=min;
B=max;

count=(int*)malloc(hag*sizeof(int));
setka=(double*)malloc(hag*sizeof(double));

for (int i = 0; i < hag; i++)
{
count[i]=0;
setka[i]=0;
}


setka[0]=A;




for (int j=0; j < hag; j++)
{
setka[j+1]=setka[j]+(double)(B-A)/hag;
}

int X1=hag;

for (int j=0; j < M; j++)
{
for (int i=0; i<X1; i++)
{
if ((setka[i]<=gistogr[j]) && (gistogr[j]<=setka[i+1]))
{
X1=i;
}

}
count[X1]=count[X1]+1;
X1=hag;
}



FILE * odnomernaya_gistogramma;
FILE * setka_odnomernaya_gistogramma;
odnomernaya_gistogramma = fopen("Одномерная_гистограмма.txt","w");
setka_odnomernaya_gistogramma = fopen("Сетка_для_одномерной_гистограммы.txt","w");

for (int i = 0; i <hag; i++)
{

fprintf( odnomernaya_gistogramma, "%d " , count[i] );
fprintf( setka_odnomernaya_gistogramma, "%f " , setka[i] );
}

fclose(odnomernaya_gistogramma);
fclose(setka_odnomernaya_gistogramma);


/*---------------Начало построения дмумерной плотности---------------*/


MIN=gistogr2[0];
MAX=MIN;
MIN1=gistogr2_1[0];
MAX1=MIN1;
for (int i=1; i <M; i++)
{
if (gistogr2[i]<MIN)
{
MIN=gistogr2[i];
}

if (gistogr2[i]>MAX)
{
MAX=gistogr2[i];
}

if (gistogr2_1[i]<MIN1)
{
MIN1=gistogr2_1[i];
}

if (gistogr2_1[i]>MAX1)
{
MAX1=gistogr2_1[i];
}
}

a=MIN;
b=MAX;
a1=MIN1;
b1=MAX1;
int razmer;
razmer=hag1*hag1;

int *count1;
count1= (int*)malloc(razmer*sizeof(int));
for (int i=0; i<razmer; i++)
count1[i]=0;

double const1,const2;
const1=double((b-a)/hag1);
const2=double((b1-a1)/hag1);

double *setka2_0, *setka2_1;
setka2_0=(double*)malloc(hag*sizeof(double));
setka2_1=(double*)malloc(hag*sizeof(double));
setka2_0[1]=a;
setka2_1[1]=a1;

for (int j = 1; j <= hag1; j++)
{
setka2_0[j+1]=setka2_0[j]+const1;
setka2_1[j+1]=setka2_1[j]+const2;
}

int X,Y;
X=hag1;
Y=hag1;

for (int j=0; j < M; j++)
{
for (int i=1; i <=X; i++)
{
if ((setka2_0[i]<=gistogr2[j]) && (gistogr2[j]<=setka2_0[i+1]))
X=i;
}
for (int k=1; k <=Y; k++)
{
if ((setka2_1[k]<=gistogr2_1[j]) && (gistogr2_1[j]<=setka2_1[k+1]))
Y=k;
}

count1[X+(Y-1)*hag1]= count1[X+(Y-1)*hag1]+1;
X=hag1;
Y=hag1;

}

FILE * SETKA2_0;
FILE * SETKA2_1;
SETKA2_0 = fopen("Сетка_для_построения_двухмерной_гистограммы_ось_абсцисс.txt","w");
SETKA2_1 = fopen("Сетка_для_построения_двухмерной_гистограммы_ось_ординат.txt","w");
for (int j = 1; j <=hag1; j++)
{
fprintf( SETKA2_0, "%f " , setka2_0[j] );
fprintf( SETKA2_1, "%f " , setka2_1[j] );
}
fclose(SETKA2_0);
fclose(SETKA2_1);



int peremennaya1;
peremennaya1=0;

FILE * MATRICA;
MATRICA = fopen("Матрица_для_построения_двумерной_плотности.txt","w");


for (int i = 1; i <=hag1; i++)
{
for (int k = 1; k <=hag1; k++)
{
peremennaya1= count1[k+(i-1)*hag1];
fprintf( MATRICA, "%d " , peremennaya1 );
}
fprintf( MATRICA, "\n");
}
fclose(MATRICA);

/*----------Начало построения 2хмерного фазового портрета----------*/

double *setka3_0, *setka3_1;
double C,D,C1,D1;


C=minn;
D=maxx;
C1=minn1;
D1=maxx1;


FILE * portret;
portret = fopen ("FAZOVYI_Portret_MinMax.txt","w");
fprintf( portret, "%f " , C );
fprintf( portret, "%f " , D );
fclose(portret);

FILE * portret1;
portret1 = fopen("FAZOVYI_portet_Min1,Max1.txt","w");
fprintf( portret1, "%f " , C1);
fprintf( portret1, "%f " , D1);
fclose(portret);



int razmer1=hag2*hag2;




int *count2;

count2= (int*)malloc(razmer1*sizeof(int));

for (int k = 0; k < razmer1; k++)
{
count2[k]=0;
}

double const3,const4;
const3=double((D-C)/hag2);
const4=double((D1-C1)/hag2);




setka3_0=(double*)malloc(hag2*sizeof(double));
setka3_1=(double*)malloc(hag2*sizeof(double));
setka3_0[1]=C;
setka3_1[1]=C1;

for (int j = 1; j <=hag2; j++)
{
setka3_0[j+1]=setka3_0[j]+const3;
setka3_1[j+1]=setka3_1[j]+const4;

}

int X2,Y2;
X2=hag2;
Y2=hag2;


long int P;
double YY1,YY2;
YY1=0;
YY2=0;
P=M*N;



ifstream f("вспомогательный_файл_для построения_2мерного_портрета_yy1.txt");
ifstream f1("вспомогательный_файл_для построения_2мерного_портрета_yy2.txt");

for (int j=0; j <P; j++)
{
f>>YY1;
f1>>YY2;


for (int i=1; i <=X2; i++)
{
if ((setka3_0[i]<=YY1) && (YY1<=setka3_0[i+1]))
X2=i;
}
for (int k=1; k <=Y2; k++)
{
if ((setka3_1[k]<=YY2) && (YY2<=setka3_1[k+1]))
Y2=k;
}

count2[X2+(Y2-1)*hag2]= count2[X2+(Y2-1)*hag2]+1;
X2=hag2;
Y2=hag2;

}

f.close();
f1.close();



FILE * matr;
matr = fopen("FAZOVYI_PORTRET.txt","w");


for (int i = 1; i <=hag2; i++)
{
for (int k = 1; k <=hag2; k++)
{

fprintf( matr, "%d " , count2[k+(i-1)*hag2] );
}
fprintf( matr, "\n");
}
fclose(matr);

}
//---------------------------------------------------------------------------

Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2012, 13:28     Как переписать программу написанную в одной среде чтобы она работала в другой
Посмотрите здесь:

C++ Переделать программу под класс. Т.е. чтобы она работала так же, но с классом
рабочая программа. но нужно ее переписать так, чтобы она была наиболее общей. C++
Как сделать так чтобы переменная в описании одной функции была доступна в описании другой? C++
Переписать функцию sqrt, чтобы она работала с большими числами C++
Как написать программу на С++, чтобы можно было вводить матрицу с клавы и в итоге она появилась на экране? C++
C++ Готовая программа, нужно переделать ее чтобы она работала с УКАЗАТЕЛЯМИ
как сделать программу, чтобы она запрашивала пароль до входа в систему C++
C++ Как изменить программу, чтобы она добавляла К строк в начало матрицы?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 18:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru