このディレクトリの索引 http://hibari.2ch.net/test/read.cgi/tech/1312201995/980 # [1] 授業単元:基礎C # [2] 問題文(含コード&リンク):以下の実行例のように,姓と名を入力すると,2 つの # 間にスペースを入れて連結した文字列を生成するプロ # グラムを作成せよ.姓と名はそれぞれ配列family[] と # first[] に,連結した文字列は配列fullname[] に格納 # すること.入力できる姓と名の長さはそれぞれ30 字ま # でとする。 # 例. Family name: Kouka # First name: Dai # Kouka Dai # '姓と名を入力すると,2つの間にスペースを入れて連結した文字列を生成する' :- 姓の入力(_姓), 名の入力(_名), '姓と名を入力すると,2つの間にスペースを入れて連結した文字列を生成する'(_姓,_名,_連結した文字列), writef('間にスペース入れて連結した文字列は「%t」\n',[_連結した文字列]). '姓と名を入力すると,2つの間にスペースを入れて連結した文字列を生成する'(_姓,_名,_間にスペースを入れて連結した文字列) :- concat_atom([_姓,_名],' ',_間にスペースを入れて連結した文字列). 姓の入力(_姓) :- write('姓名の姓を入力して下さい : '), get_line(_姓), 姓の入力診断(_姓),!. 姓の入力(_姓) :- 姓の入力(_姓). 姓の入力診断(_姓) :- atom(_姓), sub_atom(_姓,0,Len,0,_姓), Len =< 30,!. 姓の入力診断(_姓) :- writef('入力された %t は姓名の姓として適切でありません。再入力をお願いします。\n',[_姓]), fail. 名の入力(_名) :- write('姓名の名を入力して下さい : '), get_char(_名), 名の入力診断(_名),!. 名の入力(_名) :- 名の入力(_名). 名の入力診断(_名) :- atom(_名), sub_atom(_名,0,Len,0,_名), Len =< 30,!. 名の入力診断(_名) :- writef('入力された %t は姓名の名として適切でありません。再入力をお願いします。\n',[_名]), fail.