10/07/24 11:09:07
>>395
% Prolog
'入力したDNA塩基配列中に,atgという並びがいくつあるか調べるプログラムを作成せよ.但し,入力には t, c, a, g以外の文字も入っている.塩基以外の文字は無視すること':-
get_chars(Chars),
atgという並びがいくつあるか(Chars,_いくつ).
atgという並びがいくつあるか([],0).
atgという並びがいくつあるか([a|R1],_いくつ) :-
atgという並び(R1,R2),
atgという並びがいくつあるか(R2,_いくつの一),
_いくつ is _いくつの一 + 1,!.
atgという並びがいくつあるか([_|R1],_いくつ) :-
atgという並びがいくつあるか(R1,_いくつ).
atgという並び(R1,R2) :-
append(_,[t|L1],[g|R2],R1),
\+((member(A,[a,t,c,g]),member(A,L1))),!.
atgという並び(_,[]).