- 締切済み
プログラミングで困っています
プログラミングはvisual C++ 2008を使ってます。 丸棒(円柱)の慣性モーメントは I=M{(d^2/16)+(l^2/12)} で与えられる。ここでMは棒の質量、dは直径、lは長さをあらわす。 また、長さの等しい二本の糸でつるした軽い台の上に棒を置き、鉛直軸回りに回転運動させたときの振動周期は T=2π√(Ih/Mgab) で与えられる。なおgは重力加速度であり9.81[m/s^2]とする。 h=0.5[m] a=0.1[m] b=0.2[m]として実験装置を構成した時、d、l、M すなわち棒の寸法と質量を入力すると、 回転振動の周期を計算し表示するプログラムを作成せよ。 ただし慣性モーメントの計算は関数hunc_Iとしてmain関数とは別に定義せよ。 という問題があり、わからなくて困ってます。このプログラムを教えてください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- okormazd
- ベストアンサー率50% (1224/2412)
http://okwave.jp/qa/q6376399.html と同じか。 自分では結局できなかったということ? 「1を聞いて0.5を知る」ってか。 あっているかどうか知らないが、下記のようなもの。 #include <stdio.h> #include <math.h> double func_I(double d,double M,double l); int main(void) { double d,M,l,I,h,a,b,T; const double PI=3.1415926535; const double g=9.81; h=0.5; a=0.1; b=0.2; printf("h=%fm\na=%fm\nb=%fm\n",h,a,b); printf("丸棒の直径(m)、質量(kg)、長さ(m)をカンマで区切って入力してください。\n"); scanf("%lf,%lf,%lf",&d,&M,&l); I=func_I(d,M,l); T=2*PI*sqrt(I*h/(M*g*a*b)); printf("振動周期は%fsです\n",T); return 0; } double func_I(double d,double M,double l) { double I; I=M*(d*d/16+l*l/12); return I; }
- edomin7777
- ベストアンサー率40% (711/1750)
示された式を関数にして表示させるだけなんだけど、どこが判らないの?