このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1354070278/682
#  [1] 授業単元:C言語 
#  [2] 問題文(含コード&リンク): 
#  以下の手順に従ってプログラムを作成せよ。 
#  適宜printfを利用して、入力支援(「文字列を入力してください」等の画面表示)を行うこと。 
#  1.文字配列name[5][64]を作成 
#  2.キーボードから5人分の名前を入力し、name配列に格納 
#  3.キーボードから名前を入力し、name配列の何番目に格納されているかを検索して表示 
#  (見つからなかった場合は「見つかりません」と表示) 
#  4.「quit」が入力されるまで3の処理を繰り返す 
#  

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

'1.文字配列名前[5][64]を作成'(LL) :-
        length(_名前配列,5),
        findall(L,(
                    member(L,_名前配列),
                    length(L,64)),
                _名前配列).

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

名前を入力し(_名前) :-
        write('名前を入力してください : '),
        get_line(_名前).

名前配列に格納(_名前,L) :-
        atom_chars(_名前,Chars),
        append(Chars,R,L),
        all(R,' ').

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

'キーボードから名前を入力し'(_名前) :-
        write('検索する名前を入力してください : '),
        get_line(_名前).

'名前配列の何番目に格納されているかを検索して表示(見つからなかった場合は「見つかりません」と表示) 4.「quit」が入力されるまで3の処理を繰り返す'(_名前,_名前配列) :-
        '4.「quit」が入力されるまで3の処理を繰り返す'(_名前),!.
'名前配列の何番目に格納されているかを検索して表示(見つからなかった場合は「見つかりません」と表示) 4.「quit」が入力されるまで3の処理を繰り返す'(_名前,_名前配列) :-
        '名前配列の何番目に格納されているかを検索して'(_名前,_名前配列,_nth1),
        writef('%t番目 %t\n',[_nth,_名前]),!,
        fail.
'名前配列の何番目に格納されているかを検索して表示(見つからなかった場合は「見つかりません」と表示) 4.「quit」が入力されるまで3の処理を繰り返す'(_名前,_名前配列) :-
        '見つからなかった場合は「見つかりません」と表示',
        fail.

'見つからなかった場合は「見つかりません」と表示' :-
        write('見つかりません\n').

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

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