このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1370255305/761
#  どなたかお手伝いお願いします。 
#   
#  [1] 授業単元:プログラミング実習 
#  [2] 問題文:三角形底辺aと高さhを引数で与え、面積を計算する関数sを作成しなさい。 
#  また,main関数で底辺と高さを入力し、面積は関数で求め、main関数に返し出力しなさい。 
#  

main :-
        三角形の底辺aを得る(_a),
        高さhを得る(_h),
        '三角形底辺aと高さhを引数で与え、面積sを計算する'(_a,_h,_s),
        writef('三角形の面積は %t \n',[_s]).

'三角形底辺aと高さhを引数で与え、面積sを計算する'(_a,_h,_s) :-
        _s is 0.5 * _h * _s.

三角形の底辺aを得る(_a) :-
        write('三角形の底辺aを入力して下さい : '),
        get_line(Line),
        '診断: 三角形の底辺aを得る'(Line,_a),!.
三角形の底辺aを得る(_a) :-
        三角形の底辺aを得る(_a).

'診断: 三角形の底辺aを得る'(Line,_a) :-
        atom_number(Line,_a),!.
'診断: 三角形の底辺aを得る'(Line,_a) :-
        writef('入力された %t は数値ではありません。再入力をお願いします。\n',[Line]),
        fail.

高さhを得る(_h) :-
        write('高さhを入力して下さい : '),
        get_line(Line),
        '診断: 高さhを得る'(Line,_h),!.
高さhを得る(_h) :-
        高さhを得る(_h).

'診断: 高さhを得る'(Line,_h) :-
        atom_number(Line,_h),!.
'診断: 高さhを得る'(Line,_h) :-
        writef('入力された %t は数値ではありません。再入力をお願いします。\n',[Line]),
        fail.