このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1294061094/3
#  【質問テンプレ】  
#  [1] 授業単元:画像処理学  
#  [2] 問題文(含コード&リンク):  
#    指定されたエクセルファイル(csv1)の中にあるデータを読み込み  
#    各列ごとにそれぞれのデータに対し[0,1]区間に正規化し  
#    別のエクセルファイル(csv2)として出力せよ. 
#    正規化されたエクセルファイルの中にあるデータを読み込み  
#    そのデータをそれぞれx軸の値として  
#    y = x + a  の式との交点であるy軸の値をそれぞれ  
#    別のエクセルファイルとして出力(csv3)せよ.  
#    a の値は -1〜1 までの値を0.5刻みでランダムにとり  
#    同じ行では同じ関数を使うものとする.  
#    その後そのプログラムに加え  
#    各行に対し3つずつそれぞれランダムにaを決定した関数との接点を求め出力する.  
#    また6列目に使用したaの値をa1,a2,a3という形で出力(csv4)せよ. 
#  

'正規化されたエクセルファイルの中にあるデータを読み込みそのデータをそれぞれx軸の値として y = x + a  の式との交点であるy軸の値をそれぞれ別のエクセルファイルとして出力(csv3)せよ. a の値は -1〜1 までの値を0.5刻みでランダムにとり同じ行では同じ関数を使うものとする'(_正規化されたCSVファイル,_別のCSVファイル) :-
        get_split_lines(_正規化されたCSVファイル,[' ',','],LL1),
        'そのデータをそれぞれx軸の値として y = x + a  の式との交点であるy軸の値を'(LL1,LL2),
        '別のエクセルファイル(csv2)として出力する'(_別のCSVファイル,LL2).

'別のエクセルファイル(csv2)として出力する'(_別のCSVファイル,LL) :-
        open(_別のCSVファイル,write,Outstream),
        'CSVファイルとして出力する'(Outstream,LL),
        close(Outstream).

'そのデータをそれぞれx軸の値として y = x + a  の式との交点であるy軸の値を'([],[]) :- !.
'そのデータをそれぞれx軸の値として y = x + a  の式との交点であるy軸の値を'([L1|R1],[L2|R2]) :-
        'aの値は-1〜1 までの値を0.5刻みでランダムにとり'(_a),
        findall(B,(
                    append(_,[A|_],L1),
                    B is A + _a),
                L2),
        'そのデータをそれぞれx軸の値として y = x + a  の式との交点であるy軸の値を'(R1,R2).

'CSVファイルとして出力する'(Outstream,[]) :- !.
'CSVファイルとして出力する'(Outstream,[L|R]) :-
        concat_atom(L,',',S),
        write_formatted(Outstream,'%t\n',[S]),
        'CSVファイルとして出力する'(Outstream,R).

'aの値は-1〜1 までの値を0.5刻みでランダムにとり'(_a) :-
        _a is ((random mod 5) - 2) / 2.