このディレクトリの索引
# 出典 :: 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.