Zinjvi
Зарегистрирован: 06.04.2012 Сообщения: 1
|
Добавлено: Пт Апр 06 2012 22:14 Заголовок сообщения: В чем проблема?? |
|
|
Выдает ошибку. мол, память не может быть записана...
помогите пожалуйста
Код: | #include<iostream.h>
#include<math.h>
#include<stdlib.h>
//Глобальные переменные
float Epsil_1,Epsil_2,PlotnEnerg,PlotnEnergU,Epsil_X,Epsil_Y,Gamma_XY,G;
//Объявление функций
float VnUsM(float ,float , float ,float );
float VnUsQ(float ,float , float ,float );
float KasNapr(float , float ,float ,float ,float ,float );
float NormNapr(float , float ,float ,float ,float ,float );
float GlNapr(float , float ,float ,float );
float Energ(float ,float ,float ,float );
//Главный код
float main()
{
float L,H, B,dSt,dPolki;
float q1,q2,E, my,Rbt,Rb,x; // все в см. и кг.
float N,J;
L=900;
H=150;
B=200;
dSt=20;
dPolki=20;
N=2;
J=10;
q1=10;
q2=40;
E=325000;
my=0.2;
Rbt=12;
Rb=170;
float* VektVnUsM;
VektVnUsM = (float*)malloc(N*sizeof(float));
float* VektVnUsQ;
VektVnUsQ = (float*)malloc(N*sizeof(float));
float* MasPlotnEnerg;
MasPlotnEnerg = (float*)malloc(N*sizeof(float));
float* MasPlotnEnergU;
MasPlotnEnergU = (float*)malloc(N*sizeof(float));
float* V;
V = (float*)malloc(N*J*sizeof(float));
//Создадим массивы
int i,k;
float **MassivEnerg = new float*[N];
for (i=0;i<N;i++) MassivEnerg = new float*[J];
float **MassivEnergU = new float*[N];
for (i=0;i<N;i++) MassivEnergU = new float*[J];
//Пробный
int t,r;
int dim1 = 3, dim2 = 5;
int **pArr = new int*[dim1];
for (t=0;t<dim1;t++) pArr[t]=new int[dim2];
for (t=0;i<dim1;t++) for (r=0;r<dim2;r++) pArr[t][r]=i+r;
for (t=0;i<dim1;t++) for (r=0;r<dim2;r++) cout << pArr[t][r] <<";";
for (i=0;i<N;i++)
{
x=L*(i+1)/N;
VektVnUsM[i]=VnUsM(q1,q2,L,x);
VektVnUsQ[i]=VnUsQ(q1,q2,L,x);
//cout << x<< "="<<VektVnUsM[i];
for (k=0;k<J;k++)
{
int y=0.5*H*(k+1)/J;
//Посчитаем в сечении i и в волокне k величины: Epsil_1,Epsil_2,Epsil_X,Epsil_Y,Gamma_XY,G
//и сохраним их в глобальных переменных
GlNapr(my,NormNapr(VektVnUsM[i], dSt,dPolki,B,H,y),KasNapr( VektVnUsQ[i], dSt, dPolki, B, H, y),E);
//Посчитаем в сечении i и в волокне k величины: PlotnEnerg,PlotnEnergU (воспользовавшись из
//глобадьных переменных величинами Epsil_1,Epsil_2,Epsil_X,Epsil_Y,Gamma_XY,G)
//и сохраним их в глобальных переменных
Energ( E, Rb, Rbt, my);
//Присвоим Плотности єнергии деформации в сечении i и в волокне k.
//Значения возьмем из глобальной пременной
// MasPlotnEnerg[i]=PlotnEnerg;
// MassivEnerg[i][k]=i+k;
// MassivEnergU[i][k]=PlotnEnergU;
}
}
//for (i=0;i<N;i++) for (k=0;k<J;k++) cout << MassivEnergU [i][k] <<" ; " << '\n';
//for (i=0;i<N;i++)
//{ cout << '\n';
// for (k=0;k<J;k++)
// {
// cout << MasPlotnEnerg[k] <<" ; " ;
// }
//}
return 0;
}
// Момент
float VnUsM(float q1,float q2, float L,float x)
{
float gamma, ksi, M;
gamma = q1/q2;
ksi = x/L;
M = q2*L*L*ksi*ksi*(3*gamma+ksi*(1-gamma))/6;
return M;
}
// Поперечная сила
float VnUsQ(float q1,float q2, float L,float x)
{
float gamma, ksi, Q;
gamma = q1/q2;
ksi = x/L;
Q = 0.5*q2*L*ksi*(2*gamma+ksi*(1-gamma));
return Q;
}
// Касательные напряжения
float KasNapr(float VnUsQ, float dSt,float dPolki,float B,float H,float y)
{
float I,S,alfa,betta,fi;
if(H/2>y && (H-2*dPolki)/2<y)
{
S=(B*H*H)/8-(B*y*y)/2;
}
else
{
S=(B*dPolki*H)/2-(B*dPolki*dPolki)/2+(dSt*H*H)/8-(dSt*H*dPolki)/2+(dSt*dPolki*dPolki)/2-(dSt*y*y)/2;
}
alfa=dSt/B;
betta=dPolki/H;
fi=alfa+betta*(1-alfa)*(8*betta*betta-12*betta+6);
I=(fi*B*H*H*H)/12;
return (VnUsQ*S)/(dSt*I);
}
//Нормальніе напряжения
float NormNapr(float VnUsM, float dSt,float dPolki,float B,float H,float y)
{
float I,alfa,betta,fi,W;
alfa=dSt/B;
betta=dPolki/H;
fi=alfa+betta*(1-alfa)*(8*betta*betta-12*betta+6);
I=(fi*B*H*H*H)/12;
W=I/y;
return VnUsM/W;
}
//Главные напряжения
float GlNapr(float my, float NormNapr,float KasNapr,float E)
{
float p, q;
// !!! Используются глобальные переменные Epsil_1,Epsil_2,Epsil_X,Epsil_Y,Gamma_XY,G
Epsil_X=(1-my*my)*NormNapr/E;
Epsil_Y=-(1+my)*my*NormNapr/E;
G=E/(2*(1+my));
Gamma_XY=KasNapr/G;
p=-(Epsil_X+Epsil_Y);
q = Epsil_X*Epsil_X-0.25*Gamma_XY*Gamma_XY;
Epsil_1 = -(p/2)+sqrtf((p*p/4)-q);
Epsil_2 = -(p/2)-sqrtf((p*p/4)-q);
if (Epsil_1 > Epsil_2)
{
}
else
{
Epsil_1=Epsil_2;
Epsil_2=Epsil_1;
}
return 0;
}
//Текущая и предельная плотность потенциальной энергии деформации
float Energ(float E,float Rb,float Rbt,float my)
{
float NadLode, Ebcu, Ebtu, Ebshu,Teta ;
// !!! Используются глобальные переменные Epsil_1,Epsil_2,PlotnEnerg,PlotnEnergU,Epsil_X,Epsil_Y,Gamma_XY,G
NadLode=(2*Epsil_2-Epsil_1)/Epsil_1;
Ebcu=0.5*Rb*Rb/E;
Ebtu=0.5*Rbt*Rbt/E;
Ebshu=0.625*Rbt*Rb/E;
PlotnEnergU = 0.5*NadLode*NadLode*((NadLode+1)*Ebcu-(NadLode-1)*Ebtu)-(1-NadLode*NadLode)*Ebshu;
Teta=Epsil_X+Epsil_Y;
PlotnEnerg=G*(Epsil_X*Epsil_X+Epsil_Y*Epsil_Y+(my*Teta*Teta)/(1-2*my)+0.5*Gamma_XY*Gamma_XY);
return 0;
} | [/code] |
|