このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1339338438/394
#  [1] 授業単元:C言語  
#  [2] 問題文 
#  複数の在庫データ(商品コードと数量)を配列に登録しておき、 
#  その後、在庫照会を行うプログラムをかけ。 
#  なお、商品コードは3ケタの自然数とし、0が入力されたら照会を終了する。  
#   
#  実行例 
#    
#  商品数=2 
#  コード 数量  
#  在庫[0]= 100 10 
#  在庫[1]= 200 90 
#    
#  コードを入力してください 
#  コード=200 
#  この商品は90こあります 
#  コード=0 
#  終了 
#   
#  

在庫(100,10).
在庫(200,90).

'在庫照会。なお、商品コードは3ケタの自然数とし、0が入力されたら照会を終了する' :-
        整数を得る(コード,'商品コードは3ケタの自然数とし'(_商品コード),_商品コード),
        '在庫照会。なお、商品コードは3ケタの自然数とし、0が入力されたら照会を終了する'(_商品コード).

'商品コードは3ケタの自然数とし'(_商品コード) :-
        integer(_商品コード),
        _商品コード >= 100,
        _商品コード =< 999,!.
'商品コードは3ケタの自然数とし'(0) :-
        '0は3ケタの自然数ではないが、終了する為の命令コードだから、例外として入力を認める'.

'在庫照会。なお、商品コードは3ケタの自然数とし、0が入力されたら照会を終了する'(_商品コード) :-
        '0が入力されたら照会を終了する'(_商品コード),!.
'在庫照会。なお、商品コードは3ケタの自然数とし、0が入力されたら照会を終了する'(_商品コード) :-
        在庫(_商品コード,_数量),
        writef('この商品は %t 個あります。\n',[_数量]),
        '在庫照会。なお、商品コードは3ケタの自然数とし、0が入力されたら照会を終了する',!.
'在庫照会。なお、商品コードは3ケタの自然数とし、0が入力されたら照会を終了する'(_商品コード) :-
        writef('入力された %t という商品コードは存在しません。\n',[_商品コード]),
        '在庫照会。なお、商品コードは3ケタの自然数とし、0が入力されたら照会を終了する'.

'0が入力されたら照会を終了する'(0).

'0は3ケタの自然数ではないが、終了する為の命令コードだから、例外として入力を認める'.