このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 129代目 #107
# [1] 授業単元: デジタル信号処理 
# [2] 問題文(含コード&リンク): 2つのテキストファイル(double型)を読み込み、
# 畳み込み和を計算し、別のファイルに出力せよ。 


t478(M,Infile1,Infile2,Outfile) :-
    '2つのテキストファイル(double型)を読み込み、'(M,Infile1,Infile2,_フィルタならび,_サンプルならび),
    畳み込み和(_フィルタならび,_サンプルならび,_畳み込み和),
    畳み込み和出力(Outfile,_畳み込み和).

'2つのテキストファイル(double型)を読み込み、'(M,Infile1,Infile2,_フィルタならび,_サンプルならび) :-
    get_numbers(M,Infile1,_フィルタならび),
    get_numbers(M,Infile2,_サンプルならび).

畳み込み和(_フィルタならび,_サンプルならび,_畳み込み和) :-
    reverse(_サンプルならび,_逆順サンプルならび),
    畳み込み和の二(_フィルタならび,_逆順サンプルならび,_畳み込み和).

畳み込み和の二([],_,0.0) :- !.
畳み込み和の二([A|R1],[B|R2],X) :-
    畳み込み和の二(R1,R2,Y),
    X is A * B + Y.

畳み込み和出力(Outfile,_畳み込み和) :-
    tell(Outfile),
    writef('畳み込み和は %w\n',[_畳み込み和]),
    told.

get_numbers(M,File,L) :-
    see(File),
    findall(N,(
            between(1,M,_),
            read_line_to_codes(current_input,Codes),
            number_codes(N,Codes)),L),
    seen.