C/C++の宿題を片付けます 64代目
■ このスレッドは過去ログ倉庫に格納されています
0397デフォルトの名無しさん
2006/05/09(火) 23:04:08#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
double t = 0, dt = 0.00001;
double grad, dotgrad = 0, ddotgrad = 0, odotgrad;
double gravity = 9.8, len = 0.25;
if (argc < 2 || sscanf(argv[1], "%lf", &grad) < 1) {
printf("Usage: %s 開始角度(°)\n", argv[0]);
return 0;
}
grad *= M_PI / 180.0;
printf("角度 %3.0lf", grad / M_PI * 180);
while (1) {
ddotgrad = (-gravity / len * sin(grad));
odotgrad = dotgrad;
dotgrad += dt * ddotgrad;
grad += dt * dotgrad;
t += dt;
if (dotgrad <= 0 && odotgrad > 0)
break;
}
printf(" 周期 %3.3lf\n", t);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています