このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1269438098/415
#  [1] 授業単元:プログラム 
#  [2] 問題文(含コード&リンク):プログラム開始前に%だけの行が1つも無いときには,そのような行を追加し,2つ以上あるときには1つだけにするようなプログラムをC言語により作成する. 
#  

プログラム開始行はprogramからはじまることとする.

'プログラム開始前に%だけの行が1つも無いときには,そのような行を追加し,2つ以上あるときには1つだけにするようなプログラム'(_プログラム) :-
      get_lines(_プログラム,Lines),
      'プログラム開始前に%だけの行が1つも無いときには,そのような行を追加し,2つ以上あるときには1つだけにするようなプログラム'(Lines,[],Lines2),
      put_lines(_プログラム,Lines2),!.

'プログラム開始前に%だけの行が1つも無いときには,そのような行を追加し,2つ以上あるときには1つだけにするようなプログラム'([A|R1],[],['%',A|R1]) :-
      プログラム開始行はprogramからはじまることとする,
      sub_atom(A,0,7,_,program),!.
'プログラム開始前に%だけの行が1つも無いときには,そのような行を追加し,2つ以上あるときには1つだけにするようなプログラム'([A|R1],[_|_],[A|R1]) :-
      プログラム開始行はprogramからはじまることとする,
      sub_atom(A,0,7,_,program),!.
'プログラム開始前に%だけの行が1つも無いときには,そのような行を追加し,2つ以上あるときには1つだけにするようなプログラム'(['%'|R1],[],['%'|R2]) :-
      'プログラム開始前に%だけの行が1つも無いときには,そのような行を追加し,2つ以上あるときには1つだけにするようなプログラム'(R1,[_],R2).
'プログラム開始前に%だけの行が1つも無いときには,そのような行を追加し,2つ以上あるときには1つだけにするようなプログラム'(['%'|R1],[_],R2) :-
      'プログラム開始前に%だけの行が1つも無いときには,そのような行を追加し,2つ以上あるときには1つだけにするようなプログラム'(R1,[_],R2).
'プログラム開始前に%だけの行が1つも無いときには,そのような行を追加し,2つ以上あるときには1つだけにするようなプログラム'([A|R1],U,[A|R2]) :-
      \+(A='%'),
      'プログラム開始前に%だけの行が1つも無いときには,そのような行を追加し,2つ以上あるときには1つだけにするようなプログラム'(R1,U,R2).