このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1291471791/985
#  帰ってくるのがこの時間帯になるもので遅くなって申し訳ないです 
#  ../test/read.cgi/tech/1291471791/975, ../test/read.cgi/tech/1291471791/978拝見させていただきました 
#  ../test/read.cgi/tech/1291471791/975の41行目 ../test/read.cgi/tech/1291471791/978の42行目の 
#    csv = calloc(1, sizeof(CSV)); 
#  という記述に対して 
#         'void *' から 'CSV *' に変換できません。 
#  というエラーが出ます 
#  ../test/read.cgi/tech/1291471791/979さんのは実行の仕方が解らないのでただいま勉強中です 
#   
#  また../test/read.cgi/tech/1291471791/965の問ですがこれは「正規化された値にランダム数を足す」のではなく 
#  (以下2行は手順を追うための文です) 
#  正規化された値(範囲は[0,1])と 「関数y=x」の交点の値を別のcsvとして出力します 
#  ここまでだと入力と出力のファイルが同じになります 
#  (ここから本問) 
#  正規化された値(範囲は[0,1])と 「関数y=x+a」の交点の値を別のcsvとして出力します 
#  a の値は-1〜1 までの値を0.5刻みでランダムにとり  
#  同じ横列では同じ関数を使って交点をとるものとする 
#  それを縦列数分繰り返して出力するということです 
#  データは横5データ縦250データのデータです 
#  横列ごとに同一の関数と比較した交点の出力なので 
#  結果としては正規化されただけのデータと比べて横列では同じ程度の数値の変化になります 
# 

指定されたエクセルのCSVファイルの中にあるデータを読み込みそれぞれのデータの各列に列の番号の値を加えて別のCSVファイルとして出力せよ(_指定されたCSVファイル,_別のCSVファイル) :-
          get_split_lines(_指定されたCSVファイル,[' ',','],LL),
          それぞれのデータの各列に関数を適用する(LL,LL2),
          put_lines(_別のCSVファイル,LL2).

それぞれのデータの各列に関数を適用する([],[]) :- !.
それぞれのデータの各列に関数を適用する([L1|R1],[L2|R2]) :-
        各列に関数を適用する(L1,L2),
        それぞれのデータの各列に関数を適用する(R1,R2).

'各列に関数を適用する'(L1,L2) :-
        findall(_加算された値,(
                   'aの値は-1〜1 までの値を0.5刻みでランダムにとり'(_a),
                   append(L0,[_値|_],L1),
                   length([_|L0],_列の番号),
                   _加算された値 is _値 + _a),
                L2).
        
'aの値は-1〜1 までの値を0.5刻みでランダムにとり'(_a) :-
        _a is ((random mod 5) - 2) / 2.