/*-----------------------------------------------------------------------*/ /* RC rectangle section (Moment) */ /*-----------------------------------------------------------------------*/ #include #include #include #include void main_part(char fnameR[],char fnameW[]); /*-----------------------------------------------------------------------*/ int main(int argc,char *argv[]) { char fnameR[50]; /*入力ファイル名*/ char fnameW[50]; /*出力ファイル名*/ strcpy(fnameR,argv[1]); strcpy(fnameW,argv[2]); main_part(fnameR,fnameW); printf("リターンキーを押してください"); getchar(); return 0; } /*---------------------------------------------------------------------------*/ void main_part(char fnameR[],char fnameW[]) { FILE *fin,*fout; char dat[256]; char sv[20]; int icase; double bb,dt,dc,Ass,Asd,n; double MM,SS; double x; double sig_cc,sig_cd,sig_ss,sig_sd,tau_c; /* データ読み込み */ fin=fopen(fnameR,"r"); fout=fopen(fnameW,"w"); fprintf(fout,"RC rectangle section\n"); fprintf(fout,"icase,b,d,As,d',As',n,M,S,sig_c,sig_s',sig_c',sig_s,tau_c,x\n"); while(fgets(dat,sizeof dat,fin)!=NULL){ icase=atoi(strtok(dat,",")); /*Case (0:単鉄筋, 1:複鉄筋)*/ bb =atof(strtok(NULL,",")); /*引張鉄筋有効高さ*/ dt =atof(strtok(NULL,",")); /*引張鉄筋有効高さ*/ Ass=atof(strtok(NULL,",")); /*引張鉄筋断面積*/ dc =atof(strtok(NULL,",")); /*圧縮鉄筋有効高さ*/ Asd=atof(strtok(NULL,",")); /*圧縮鉄筋断面積*/ n =atof(strtok(NULL,",")); /*弾性係数比*/ MM =atof(strtok(NULL,",")); /*モーメント*/ SS =atof(strtok(NULL,",")); /*せん断力*/ sig_cc=0.0; /*圧縮縁コンクリート応力*/ sig_cd=0.0; /*引張縁コンクリート応力*/ sig_sd=0.0; /*圧縮縁鉄筋応力*/ sig_ss=0.0; /*引張縁鉄筋応力*/ tau_c=0.0; /*コンクリートせん断応力*/ switch(icase){ case 0: x=n*Ass/bb*(-1.0+sqrt(1.0+2.0*bb*dt/n/Ass)); sig_cc=2.0*MM/(bb*x*(dt-x/3.0)); sig_ss=n*sig_cc*(dt-x)/x; tau_c=SS/bb/(dt-x/3.0); break; case 1: x=-n*(Ass+Asd)/bb+sqrt(pow(n*(Ass+Asd)/bb,2.0)+2.0*n/bb*(dt*Ass+dc*Asd)); sig_cc=MM/(bb*x/2.0*(dt-x/3.0)+n*Asd*(x-dc)/x*(dt-dc)); sig_sd=n*sig_cc*(x-dc)/x; sig_ss=n*sig_cc*(dt-x)/x; tau_c=SS/bb/(dt-x/3.0); break; } fprintf(fout,"%d,%.3f,%.3f,%.3f,%.3f,%.3f,%.0f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f\n",icase,bb,dt,Ass,dc,Asd,n,MM,SS,sig_cc,sig_sd,sig_cd,sig_ss,tau_c,x); } } /*---------------------------------------------------------------------------*/