このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 131代目 #834 # [1] 授業単元: プログラミング実習 # [2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10095.txt # 文字列str1の文末に文字列str2を追加するプログラムを書け。 # この機能を実現する関数にstrcatがあるが、この練習ではstrcatを使用するプログラムと、使用するプログラムの2つをそれぞれかけ。 %%%%%%%%%%%%%%%%% strcat(Atom1,Atom2,Atom3) :- atom_concat(Atom1,Atom2,Atom3). %%%%%%%%%%%%%%%%% strcat(Atom1,Atom2,Atom3) :- 'Atom1とAtom2をそれぞれ文字ならびに変換して'(Atom1,Atom2,Chars1,Chars2), 'それを結合してAtom3に戻す'(Chars1,Chars2,Atom3). 'Atom1とAtom2をそれぞれ文字ならびに変換して'(Atom1,Atom2,Chars1,Chars2) :- atom_chars(Atom1,Chars1), atom_chars(Atom2,Chars2). 'それを結合してAtom3に戻す'(Chars1,Chars2,Atom3) :- append(Chars1,Chars2,Chars3), atom_chars(Atom3,Chars3). %%%%%%%%%%%%%%%%% strcat(Atom,'',Atom). strcat(Atom1,Atom2,Atom3) :- 'Atom2が空文字になるまで、Atom2の先頭文字をAtom1の末尾に付け加えて行く'(Atom1,Atom2,Atom3). 'Atom2が空文字になるまで、Atom2の先頭文字をAtom1の末尾に付け加えて行く'(Atom1,Atom2,Atom3) :- 'Atom2を先頭文字とのこり文字列に分解する(Atom2,_先頭文字,_残り文字列), atom_concat(Atom1,_先頭文字,_末尾に一文字追加された文字列), strcat(_末尾に一文字追加された文字列,_残り文字列,Atom3). 'Atom2を先頭文字とのこり文字列に分解する(Atom2,_先頭文字,_残り文字列) :- sub_atom(Atom2,0,1,R,_先頭文字), sub_atom(Atom2,1,R,0,_残り文字列).