まだ使ってないので実用的かわかりませんが(回転する軸によって値が変わっちゃう)あとでどうにかします。たぶん。
というか多分ネットで検索したらフリーの計算サイトなんかが出てくるんだろうなと思ったけど努力が無駄になってしまうので検索なんてしません(絶対)。
#include<stdio.h> float chouhoukei(void); float nagaibou(void); float enban(void); float enchuu(void); float entou(void); float kyuu(void); float kyuukaku(void); float a,b,l,r,m,j; void main(void) { int n; float t; printf("重心z軸(機力の教科書p251の図参照)まわりの慣性モーメント\n"); printf("部品の形を番号で選んでください.\n1.長方形板,2.長い棒,3.薄い円盤,4.円柱,5.円筒形,6.球,7.球殻\n"); scanf("%d",&n); if(n==1){ t=chouhoukei(); printf("J=%f[kgm^2]",t); } if(n==2){ t=nagaibou(); printf("J=%f[kgm^2]",t); } if(n==3){ t=enban(); printf("J=%f[kgm^2]",t); } if(n==4){ t=enchuu(); printf("J=%f[kgm^2]",t); } if(n==5){ t=entou(); printf("J=%f[kgm^2]",t); } if(n==6){ t=kyuu(); printf("J=%f[kgm^2]",t); } if(n==7){ t=kyuukaku(); printf("J=%f[kgm^2]",t); } } float chouhoukei(void){ printf("質量[kg]を入力してください\n"); scanf("%f",&m); printf("横の長さ[m]を入力してください\n"); scanf("%f",&b); printf("縦の長さ[m]を入力してくだいさい\n"); scanf("%f",&a); j=(a*a+b*b)*m/12; return j; } float nagaibou(void){ printf("質量[kg]を入力してください\n"); scanf("%f",&m); printf("長さ[m]を入力してください\n"); scanf("%f",&l); j=m*l*l/12; return j; } float enban(void){ printf("質量[kg]を入力してください\n"); scanf("%f",&m); printf("半径[m]を入力してください\n"); scanf("%f",&r); j=r*r*m/2; return j; } float enchuu(void){ printf("質量[kg]を入力してください\n"); scanf("%f",&m); printf("半径[m]を入力してください\n"); scanf("%f",&r); printf("長さ[m]を入力してくだいさい\n"); scanf("%f",&l); j=r*r*m/2; return j; } float entou(void){ printf("質量[kg]を入力してください\n"); scanf("%f",&m); printf("半径[m]を入力してください\n"); scanf("%f",&r); j=r*r*m; return j; } float kyuu(void){ printf("質量[kg]を入力してください\n"); scanf("%f",&m); printf("半径[m]を入力してください\n"); scanf("%f",&r); j=2*m*r*r/5; return j; } float kyuukaku(void){ printf("質量[kg]を入力してください\n"); scanf("%f",&m); printf("半径[m]を入力してください\n"); scanf("%f",&r); j=2*r*r*m/3; return j; }
0 件のコメント:
コメントを投稿