このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1291471791/965
#  【質問テンプレ】  
#  [1] 授業単元:画像処理学  
#  [2] 問題文(含コード&リンク):  
#    正規化されたエクセルファイルの中にあるデータを読み込み  
#    そのデータをそれぞれx軸の値として 
#    y = x + a  の式との交点であるy軸の値をそれぞれ  
#    別のエクセルファイルとして出力せよ. 
#    a の値は -1〜1 までの値を0.5刻みでランダムにとり 
#    同じ行では同じ関数を使うものとする.  
#  

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

'正規化されたエクセルファイルの中にあるデータを読み込み'(_正規化されたCSVファイル,LL) :-
        get_split_lines(_正規化されたCSVファイル,[' ',','],LL).

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

別のCSVファイルに出力する(_別のCSVファイル,LL) :-
        open(_別のCSVファイル,write,Outstream),
        append(_,[L|R],LL),
        concat_atom(L,',',S),
        write_formatted(Outstream,'%t\n',[S]),
        R = [],
        close(Outstream).