このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1335517816/943
#  [1] 授業単元: プログラミング入門  
#  [2] 問題文(含コード&リンク):  
#   
#  1 for文を用いて0.1の二乗、0.2の二乗、0.3の二乗と0.1ずつ10まで増やしていき、その値をファイルdata1.txtに書き出す。 
#  書き出した後で、ファイルからデータを読み込み画面に出力する。 
#   
#   
#  2 a = 3.1, b = 2.9, c = −1.1, d = 5.3の最大値、最小値を求め画面に出力する 
#   

'a = 3.1, b = 2.9, c = −1.1, d = 5.3の最大値、最小値を求め画面に出力する' :-
        項目名付き最大値([a,b,c,d],[3.1,2.9,-1.1,5.3],_最大値項目名,_最大値),
        項目名付き最小値([a,b,c,d],[3.1,2.9,-1.1,5.3],_最小値項目名,_最小値),
        画面に出力する(_最大値項目名,_最大値,_最小値項目名,_最小値).


項目名付き最大値([a,b,c,d],[3.1,2.9,-1.1,5.3],_最大値項目名,_最大値) :-
        項目名付き最大値([a,b,c,d],[3.1,2.9,-1.1,5.3],a,3.1,_最大値項目名,_最大値).

項目名付き最大値([],[],_最大値項目名,_最大値,_最大値項目名,_最大値).
項目名付き最大値([_項目名|R1],[_値|R2],_現在の最大値項目名,_現在の最大値,_最大値項目名,_最大値) :-
        _値 @> _現在の最大値,
        項目名付き最大値(R1,R2,_項目名,_値,_現在の最大値,_最大値項目名,_最大値),!.
項目名付き最大値([_項目名|R1],[_値|R2],_現在の最大値項目名,_現在の最大値,_最大値項目名,_最大値) :-
        項目名付き最大値(R1,R2,_現在の最大値項目名,_現在の最大値,_最大値項目名,_最大値).

項目名付き最小値([a,b,c,d],[3.1,2.9,-1.1,5.3],_最大値項目名,_最大値) :-
        項目名付き最小値([a,b,c,d],[3.1,2.9,-1.1,5.3],a,3.1,_最大値項目名,_最大値).

項目名付き最小値([],[],_最小値項目名,_最小値,_最小値項目名,_最小値).
項目名付き最小値([_項目名|R1],[_値|R2],_現在の最小値項目名,_現在の最小値,_最小値項目名,_最小値) :-
        _値 @< _現在の最小値,
        項目名付き最小値(R1,R2,_項目名,_値,_最小値項目名,_最小値),!.
項目名付き最小値([_項目名|R1],[_値|R2],_現在の最小値項目名,_現在の最小値,_最小値項目名,_最小値) :-
        項目名付き最小値(R1,R2,_現在の最小値項目名,_現在の最小値,_最小値項目名,_最小値).

画面に出力する(_最大値項目名,_最大値,_最小値項目名,_最小値) :-
        writef('最大値は%t=%tです。\n最小値は%t=%tです。\n',[_最大値項目名,_最大値,_最小値項目名,_最小値]).