このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1320365280/307
#  【質問テンプレ】 
#  [1] 授業単元:C言語 
#  [2] 問題文(含コード&リンク):http://ime.nu/iup.2ch-library.com/i/i0478374-1321368771.jpg 
#  
#  1. (データの新規追加) 引数を順に名前、電話番号、学籍番号を表す配列 name phone number を用いて実装せよ
#  2. (データ項目の削除) 引数で指定されたデータ項目と合致する個人データを住所録から削除する関数
#  3. (データの検索) 引数で指定されたデータ項目を住所録から検索する関数
#  4. 住所録に登録されているすべての個人データを表示するものとする。未使用
#     領域も表示すること。
#  


引数で指定されたデータ項目を住所録から検索する関数(_データ項目,_名前,_住所,_電話番号,_学籍番号) :-
        登録位置を得る(_データ項目,_n番目),
        指定された登録位置から各項目を取得する(_n番目,_名前,_住所,_電話番号,_学籍番号).

登録位置を得る(_データ項目,_n番目) :-
        住所録(名前,_名前ならび),
        append(L0,[_名前|_],_名前ならび),
        sub_atom(_名前,_,_,_,_データ項目),
        length([_|L0],_n番目).

指定された登録位置から各項目を取得する(_n番目,_名前,_住所,_電話番号,_学籍番号) :-
        n番目の名前(_n番目,_名前),
        n番目の住所(_n番目,_住所),
        n番目の電話番号(_n番目,_電話番号),
        n番目の学籍番号(_n番目,_学籍番号).

n番目の名前(_n番目,_名前) :-
        住所録(名前,_名前ならび),
        nth1(_n番目,_名前ならび,_名前).

n番目の電話番号(_n番目,_電話番号) :-
        電話番号録(名前,_電話番号ならび),
        nth1(_n番目,_電話番号ならび,_電話番号).

n番目の学籍番号(_n番目,_学籍番号) :-
        学籍番号録(名前,_学籍番号ならび),
        nth1(_n番目,_学籍番号ならび,_学籍番号).