このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1357748713/637
#  1] 授業単元: プログラミング 演習(構造体) 
#  [2] 問題文(含コード&リンク): 3冊の本の名前、ISBN、著者名を入力し一覧表示しなさい。 
#  ただし、ISBNの4,6,12,16桁目に'-'が入っていない場合エラー表示しなさい。 
#  

'3冊の本の名前、ISBN、著者名を入力し一覧表示しなさい。ただし、ISBNの4,6,12,16桁目に'-'が入っていない場合エラー表示しなさい。' :-
        '3冊の本の名前、ISBN、著者名を入力し'(_3冊の本),
        一覧表示しなさい(_3冊の本).

'3冊の本の名前、ISBN、著者名を入力し'(_3冊の本) :-
        findall([_本の名前,_ISBN,_著者名],(
                    between(1,3,_),
                    本の名前の入力(_本の名前),
                    'ISBNの入力'(_ISBN),
                    著者名の入力(_著者名)),
                _3冊の本).

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

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

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

一覧表示しなさい([]).
一覧表示しなさい([[_本の名前,_ISBN,_著者名]|R]) :-
        writef('%20l %17l %12l',[_本の名前,_ISBN,_著者名]),
        'ただし、ISBNの4,6,12,16桁目に'-'が入っていない場合エラー表示しなさい。'(_ISBN),        
        write('\n'),
        一覧表示しなさい(R).


'ただし、ISBNの4,6,12,16桁目に'-'が入っていない場合エラー表示しなさい。'(_ISBN文字列) :-
        atom_chars(_ISBN文字列,[_,_,_,-,_,-,_,_,_,_,_,-,_,_,_,-|_]),!.
'ただし、ISBNの4,6,12,16桁目に'-'が入っていない場合エラー表示しなさい。'(_ISBN文字列) :-
        write(' %ISBN形式エラー ').