このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1354070278/150
#  [1] c言語 
#  [2] 
#  (1) 
#  キーボードから二つの文字列を配列x[256],y[256] に入力する.配列xに含まれる文字列の 
#  後ろに配列yに含まれる文字列をつなげたものを配列z[256] に代入し,画面表示するプログ 
#  ラムを作成せよ.例えば二つの文字列が「sch」,「ool」の場合,配列z に「school」が代入され, 
#  画面表示される.なお,NULL文字「\0」の扱いに注意し,配列z の文字列の後ろにNULL文 
#  字を入れておくこと 
#   
#  (2)以下の手順に従ってプログラムを作成せよ.適宜printf を利用して,入力支援(「文字列を入 
#  力して下さい」などの画面表示)を行うこと. 
#   文字配列name[5][64] を作成する. 
#   キーボードから5 人分の名前を入力し,name 配列に格納する. 
#   キーボードから名前を入力し,name 配列の何番目に格納されているかを検索して表示 
#  する.ただし,見つからなかった場合には,「見つかりません」と表示する. 
#   「quit」が入力されるまでの処理を繰り返す. 
#   
#  

'以下の手順に従ってプログラムを作成せよ.適宜printf を利用して,入力支援(「文字列を入力して下さい」などの画面表示)を行うこと.
1) 文字配列name[5][64] を作成する.
2) キーボードから5 人分の名前を入力し,name 配列に格納する.
3) キーボードから名前を入力し,name 配列の何番目に格納されているかを検索して表示する.ただし,見つからなかった場合には,「見つかりません」と表示する.
4) 「quit」が入力されるまで3)の処理を繰り返す.' :-
        '1) 文字配列name[5][64] を作成する.'(_name),
        '2) キーボードから5 人分の名前を入力し,name 配列に格納する.'(_name),
        '3) キーボードから名前を入力し,name 配列の何番目に格納されているかを検索して表示する.ただし,見つからなかった場合には,「見つかりません」と表示する.'(_name,_名前),
        '4) 「quit」が入力されるまで3)の処理を繰り返す.'(_名前).

'1) 文字配列name[5][64] を作成する.'(_name) :-
        length(_name,5),
        findall(L,(
                    member(L,LL),
                    length(L,64)),
                _name).

'2) キーボードから5 人分の名前を入力し,name 配列に格納する.'(_name) :-
        findall(L,(
                    member(L,_name),
                    '名前を入力し,name 配列に格納する'(L)),
                _name).

'3) キーボードから名前を入力し,name 配列の何番目に格納されているかを検索して表示する.ただし,見つからなかった場合には,「見つかりません」と表示する.'(_name,名前) :-
        キーボードから名前を入力し(_名前),
        'name 配列の何番目に格納されているかを検索して表示する.ただし,見つからなかった場合には,「見つかりません」と表示する'(_名前,_name).
'3) キーボードから名前を入力し,name 配列の何番目に格納されているかを検索して表示する.ただし,見つからなかった場合には,「見つかりません」と表示する.'(_name,_名前) :-
        '3) キーボードから名前を入力し,name 配列の何番目に格納されているかを検索して表示する.ただし,見つからなかった場合には,「見つかりません」と表示する.'(_name,_名前).

'name 配列の何番目に格納されているかを検索して表示する.ただし,見つからなかった場合には,「見つかりません」と表示する'(quit,_) :- !.
'name 配列の何番目に格納されているかを検索して表示する.ただし,見つからなかった場合には,「見つかりません」と表示する'(_名前,_name) :-
        'name 配列の何番目に格納されているかを検索して'(_名前,_name),
        表示する(_名前,_何番目),!.
'name 配列の何番目に格納されているかを検索して表示する.ただし,見つからなかった場合には,「見つかりません」と表示する'(_,_) :-
        writef('見つかりません\n'),
        fail.

'name 配列の何番目に格納されているかを検索して'(_名前,_name) :-
        atom_chars(_名前,Chars),
        nth1(_何番目,_name,L),
        append(Chars,_,L).

表示する(_名前,_何番目) :-
        writef('%tは%t番目にあります。\n',[_名前,_何番目]),!.

'4) 「quit」が入力されるまで3)の処理を繰り返す.'(quit).