このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1335517816/641
#  [2] 問題 
#    
#  1. 等加速度直線運動を考える。初速度(m/s) と等加速度(m/s2) を入力すると、100m 先の地点に到達す 
#  るまでの時間(s)、およびその時の速度(m/s) を表示するプログラムを作成せよ。入力される数値と 
#  して、浮動小数点数値に対応すること。 
#  

s秒後の速度(_初速度,_等加速度,_S,_s秒後の速度) :-
        s秒後の速度 is _初速度 + _等加速度 * _S.

s秒後の進んだ距離(_初速度,_等加速度,_S,_s秒後に進んだ距離) :-
        s秒後の速度(_初速度,_等加速度,_S,_s秒後の速度),
        _s秒後の進んだ距離 is _初速度 * _s + (_s秒後の速度 * _s) / 2.

'等加速度直線運動を考える。初速度(m/s)と等加速度(m/s2)を入力すると、100m先の地点に到達するまでの時間(s)、およびその時の速度(m/s)を表示するプログラムを作成せよ。入力される数値として、浮動小数点数値に対応すること。' :-
        '初速度(m/s)と等加速度(m/s^2)を入力すると'(_初速度,_等加速度),
        '100m 先の地点に到達するまでの時間(m/s)、およびその時の速度(m/s)を'(_初速度,_等加速度,_100m先に到達する時間,_100m先に到達した時の速度),
        表示する(_初速度,_等加速度,_100m先に到達する時間,_100m先に到達した時の速度).

'100m 先の地点に到達するまでの時間(m/s)、およびその時の速度(m/s)を'(_初速度,_等加速度,_100m先に到達する時間,_100m先に到達した時の速度) :-
        '100m先に到達する時間と到達した時の速度'(_初速度,_等加速度,0.000,_100m先に到達する時間,_100m先に到達した時の速度).

'100m先に到達する時間と到達した時の速度'(_初速度,_等加速度,_s,_s,_100m先に到達した時の速度) :-
        s秒後の進んだ距離(_初速度,_等加速度,_S,_s秒後に進んだ距離),
        _s秒後に進んだ距離 >= 100.0,
        s秒後の速度(_初速度,_等加速度,_s,_100m先に到達した時の速度),!.
'100m先に到達する時間と到達した時の速度'(_初速度,_等加速度,_s,_100m先に到達する時間,_100m先に到達した時の速度) :-
        _s_2 is _s + 0.001,
        '100m先に到達する時間と到達した時の速度'(_初速度,_等加速度,_s_2,_100m先に到達する時間,_100m先に到達した時の速度).

'初速度(m/s)と等加速度(m/s^2)を入力すると'(_初速度,_等加速度) :-
        数を得る('初速度(m/s)',_初速度),
        数を得る('等加速度(m/s^2)'_等加速度).

表示する(_初速度,_等加速度,_100m先に到達する時間,_100m先に到達した時の速度) :-
        writef('初速度 = %t, 等加速度 = %t の時、100m先に到達する時間は %t, 100m先に到達した時の速度は %t です。\n',[_初速度,_等加速度,_100m先に到達する時間,_100m先に到達した時の速度]).


%  数を得る/2