このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1284632294/506
#  [1] 授業単元:プログラム総合  
#  [2] 問題文(含コード&リンク)  
#   並列に接続した3つの抵抗の合成抵抗を求める。さらに、その両端に電圧V0を印加されたときに流れる電流を2通り 
#  (全体に流れる電流、3つの抵抗それぞれに流れる電流)求めるプログラムを作れ 
#  また変数は実数型とすること 
#   

並列に接続した3つの抵抗の合成抵抗を求める(_抵抗1,_抵抗2,_抵抗3,_合成抵抗) :-
        _抵抗1 =< 10000,_抵抗2 =< 10000,_抵抗3 =< 10000,
        _合成抵抗 is (_抵抗1 * _抵抗2 * _抵抗3) / (_抵抗1 * _抵抗2 + _抵抗2 * _抵抗3 + _抵抗1 * _抵抗3),!.

並列に接続した3つの抵抗の合成抵抗を求める(_抵抗1,_抵抗2,_抵抗3,_合成抵抗) :-
        \+((_抵抗1 < 10000,_抵抗2 < 10000,_抵抗3 < 10000)),
        _合成抵抗 is 1 / ( 1 / _抵抗1 + 1 / _抵抗2 + 1 / _抵抗3).

'その両端に電圧V0を印加されたときに流れる電流を2通り(全体に流れる電流、3つの抵抗それぞれに流れる電流)求める'(_電圧,_抵抗1,_抵抗2,_抵抗3,_全体に流れる電流,_電流1,_電流2,_電流3) :-
        並列に接続した3つの抵抗の合成抵抗を求める(_抵抗1,_抵抗2,_抵抗3,_合成抵抗),
        _全体に流れる電流 is _電圧 / _合成抵抗,
        _電流1 is _全体に流れる電流 * _抵抗2 * _抵抗3 / (_抵抗1 * _抵抗2 *_抵抗3),
        _電流2 is _全体に流れる電流 * _抵抗1 * _抵抗3 / (_抵抗1 * _抵抗2 *_抵抗3),
        _電流3 is _全体に流れる電流 * _抵抗1 * _抵抗2 / (_抵抗1 * _抵抗2 *_抵抗3).