このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1258158172/221
#  [1] 授業単元: プログラミング 
#  [2] 問題文(含コード&リンク): 
#   http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10149.txt
# メイン関数において、2つの放物線
#  y=ax2+bx+c (a≠0)
#  y=px2+qx+r (p≠0)
# の係数a、b、c、p、q、rをキーボードから入力し、その数値を関数に引数として渡す。
# 関数はその数値を用いて2曲線の交点の有無を調べ、その交点の個数を戻り値としてメイン関数に渡す
# (交点が無い場合は0、交点が1つの場合は1、交点が2つの場合は2、交点が無限に存在する場合はー1を戻り値にする)。
# また関数は、もし交点が有限個存在するならばそれらの交点の座標値をメイン関数に渡す。
# メイン関数は関数から得たこれらの情報を得て、交点の個数を画面に表示し、さらにもし交点が有限個存在するならばそれらの座標値を画面に表示する。
# そのようなプログラムを作成せよ。

二つの放物線の交点(_a,_b,_c,_p,_q,_r,X,Y) :-
    A is (_a - _p),
    B is (_b - _q),
    C is (_c - _r),
    D is B^2 - 4 * A * C,
    D > 0,
    X is ((-1) * B + sqrt(D)) / (2 * A),
    Y is _a * (X^2) + _b * X + _c.
二つの放物線の交点(_a,_b,_c,_p,_q,_r,X,Y) :-
    A is (_a - _p),
    B is (_b - _q),
    C is (_c - _r),
    D is B^2 - 4 * A * C,
    D > 0,
    X is ((-1) * B - sqrt(D)) / (2 * A),
    Y is _a * (X^2) + _b * X + _c.
二つの放物線の交点(_a,_b,_c,_p,_q,_r,X,Y) :-
    A is (_a - _p),
    B is (_b - _q),
    C is (_c - _r),
    D is B^2 - 4 * A * C,
    D = 0,
    X is ((-1) * B / (2 * A)),
    Y is _a * (X^2) + _b * X + _c.