このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1294061094/277
#  [1] 授業単元:プログラミング言語(C) 
#  [2] 問題文(含コード&リンク): 
#  Cプログラミングの基礎[新訂版]発行:サイエンス社 著:蓑原隆より 
#  P48 3.1 3.2 3.3 3.4  P55 4.1 P88 5.1 P104 6.1 6.2 
#  http://ime.nu/upload.jpn.ph/upload/img/u72273.jpg 
#  http://ime.nu/upload.jpn.ph/upload/img/u72276.jpg 
#  http://ime.nu/upload.jpn.ph/upload/img/u72274.jpg 
#  http://ime.nu/upload.jpn.ph/upload/img/u72275.jpg 
#  
#  3.1 気温と温度を入力すると、不快指数の値とその値で不快に感じる人の割合を
#  表示するプログラムを作成せよ。
#  (不快指数) = 0.81 * 気温 + 0.01 * 湿度 * (0.99 * 気温 - 14.3) + 46.3
#  不快指数の値によって次の表に示す割合の人が不快に感じるといわれている。
#  不快指数 割合
#  77未満       約9%
#  77以上85未満 約65%
#  85以上       約93%

'気温と温度を入力すると、不快指数の値とその値で不快に感じる人の割合を表示する' :-
'気温と湿度を入力すると、'(_気温,_湿度),
不快指数の値とその値で不快に感じる人の割合を表示する(_気温,_湿度,_不快指数).

'気温と湿度を入力する、'(_気温,_湿度) :-
気温を入力する(_気温),
湿度を入力する(_湿度).

気温を入力する(_気温) :-
write('気温を入力してください : '),
行入力(_行),
気温入力診断(_行,_気温),!.
気温を入力する(_気温) :-
気温を入力する(_気温).

湿度を入力する(_湿度) :-
write('湿度を入力してください : '),
行入力(_行),
湿度入力診断(_行,_湿度),!.
湿度を入力する(_湿度) :-
湿度を入力する(_湿度).

気温入力診断(_行,_気温) :-
read_term_from_atom(_行,_気温,[]),
integer(_気温),!.
気温入力診断(_行,_) :-
writef('入力された文字列 %t からは気温を得られませんでした。再入力をお願いします。\n',[_行]),
fail.

湿度入力診断(_行,_湿度) :-
read_term_from_atom(_行,_湿度,[]),
integer(_湿度),!.
湿度入力診断(_行,_) :-
writef('入力された文字列 %t からは湿度を得られませんでした。再入力をお願いします。\n',[_行]),
fail.

不快指数の値とその値で不快に感じる人の割合を表示する(_気温,_湿度,_不快指数) :-
不快指数の値とその値で不快に感じる人の割合を(_気温,_湿度,_不快指数,_不快に感じる人の割合),
表示する(_不快指数,_不快に感じる人の割合).

不快指数の値とその値で不快に感じる人の割合を(_気温,_湿度,_不快指数,_不快に感じる人の割合) :-
不快指数の値と(_気温,_湿度,_不快指数),
不快に感じる人の割合を(_不快指数,_不快に感じる人の割合),

不快指数の値と(_気温,_湿度,_不快指数) :-
_不快指数 is 0.81 * _気温 + 0.01 * _湿度 * (0.99 * _気温 - 14.3) + 46.3.

不快に感じる人の割合を(_不快指数,9) :-
不快指数が77未満(_不快指数).
不快に感じる人の割合を(_不快指数,65) :-
不快指数が77以上85未満の時(_不快指数).
不快に感じる人の割合を(_不快指数,85) :-
不快指数が85以上の時(_不快指数).

不快指数が77未満(_不快指数) :-
_不快指数 < 77.

不快指数が77以上85未満の時(_不快指数) :-
_不快指数 >= 77,
_不快指数 < 85.

不快指数が85以上の時(_不快指数) :-
_不快指数 >= 85.

表示する(_不快指数,_不快に感じる人の割合) :-
writef('不快指数は %t, この状態を不快に感じる人の割合は 約%t%%です\n',[_不快指数,_不快に感じる人の割合]).

行入力(_行) :-
read_line_to_codes(user_input,Codes),
atom_codes(_行,Codes).