このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1272006124/164
#  {if-else文} 身長と体重のデータを読み込み、下の定義から体型を判定するプログラムを作成せよ。  
#   
#  定 義:身長h(cm),体重w(Kg)とすると  
#   
#  w < (h-95)*0.82 やせすぎ(SLIM)  
#   
#  w > (h-95)*1.10 ふとりすぎ(FAT)  
#   
#  その中間 正常(NORMAL)   
#   

'定 義:身長h(cm),体重w(Kg)とすると  w < (h-95)*0.82 やせすぎ(SLIM)  w > (h-95)*1.10 ふとりすぎ(FAT)  その中間 正常(NORMAL)   '(_体型判定) :-
        身長を読み込む(_身長),
        体重を読み込む(_体重),
        '身長、体重から体型を判定する'(_身長,_体重,_体型判定).

'身長、体重から体型を判定する'(_身長,_体重,_体型判定) :-
        '体重が (身長-95) * 0.82 より小さい時は'(_身長,_体重,_体型判定).
'身長、体重から体型を判定する'(_身長,_体重,_体型判定) :-
        '体重が (身長-95) * 0.10 より大きい時は'(_身長,_体重,_体型判定).
'身長、体重から体型を判定する'(_身長,_体重,_体型判定) :-
        'その中間'(_身長,_体重,_体型判定).

'体重が (身長-95) * 0.82 より小さい時は'(_身長,_体重,'やせすぎ(SLIM)') :-
        _体重 < (_身長-95) * 0.82,!.

'体重が (身長-95) * 0.10 より大きい時は'(_身長,_体重,'ふとりすぎ(FAT)') :-
        _体重 > (_身長-95) * 1.10,!.

'その中間'(_身長,_体重,'正常(NORNAL)') :-
        _体重 >= (_身長-95) * 0.82,
        _体重 =< (_身長-95) * 1.10,!.

身長を読み込む(_身長) :-
        write('身長を入力してください : '),
        get_line(Line),
        身長読み込み診断(Line,_身長),!.
身長を読み込む(_身長) :- 身長を読み込む(_身長).

身長読み込み診断(Line,_身長) :-
        atom_to_term(Line,_身長,_),
        integer(_身長),
        _身長 > 3,!.
身長読み込み診断(Line,_身長) :-
        write_formatted('入力された %t からは身長らしき値は取り出せませんでした。再入力をお願いします。\n',[Line]),
        fail.        

体重を読み込む(_体重) :-
        write('体重を入力してください : '),
        get_line(Line),
        体重読み込み診断(Line,_体重),!.
身長を読み込む(_体重) :- 体重を読み込む(_体重).

体重読み込み診断(Line,_体重) :-
        atom_to_term(Line,_体重,_),
        integer(_体重),!.
体重読み込み診断(Line,_体重) :-
        write_formatted('入力された %t からは体重らしき値は取り出せませんでした。再入力をお願いします。\n',[Line]),
        fail.