このディレクトリの索引 http://hibari.2ch.net/test/read.cgi/tech/1307166756/945 # [1] 授業単元:C # [2] 問題文(含コード&リンク): # strcmp()を利用し、input.txtを読み込み、キーボードから英単語を1つ入力し、その単語が、input.txtに何個含まれるかを出力するプログラムを作成しなさい。 # 'input.txtを読み込み、キーボードから英単語を1つ入力し、その単語が、input.txtに何個含まれるかを出力する' :- 'input.txtを読み込み'(LL), キーボードから英単語を1つ入力し(_英単語), 英単語から何個含まれるか(LL,_英単語,_何個), writef('英単語%tはinput.txtに%t個含まれる\n',[_英単語,_何個]). 'input.txtを読み込み'(LL) :- see('input.txt'), readln(X,_終了状態), 'input.txtを読み込み'(X,_終了状態,LL), seen. 'input.txtを読み込み'(_,end_of_file,[]) :- !. 'input.txtを読み込み'(L,_,[L|R]) :- readln(L2,_終了状態2), 'input.txtを読み込み'(L2,_終了状態2,R). キーボードから英単語を1つ入力し(_英単語) :- get_line(_英単語),!. 英単語から何個含まれるか(LL,_英単語,_何個) :- flatten(LL,L), count(member(_英単語,L),_何個). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% count(P,N) :- findsum(1,P,F), N is truncate(F). findsum(_選択項,_項,_合計値) :- findall(_選択項,_項,_値ならび), sum(_値ならび,_合計値),!. sum([],0) :- !. sum([N|R],X) :- sum(R,Y), X is N + Y. % split/3の定義