このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1289913298/4
#  [1] 授業単元:プログラミング演習  
#  [2] 問題文(含コード&リンク)  
#  問題1 キーボードから入力した複数個の整数の、加算と積算の計算結果を表示するプログラムを作成しなさい。
ただし、このプログラムは、連続して実行される前半と後半の2部構成で作成してください。  
#  0が入力された時点で、入力処理を終了し結果の表示を行ってください。  
#  すなわち、前半の処理では、キーボードから入力した数値の加算合計の表示を、0が入力されるまで繰返し、後半の処理ではキーボードから入力した数値の積算値の表示を、0が入力されるまで繰返すプログラムを作成してください。  
#  【条件】 
前半の「和を求める」繰返しは while 文、後半の「積を求める」繰返しは do-while 文を使用して作成すること。  
#  【実行例】
=加算処理=  
#  
値:6
  
#  値:8  
#  
値:12
  
#  値:0  
#  
合計は26です。  
#  
=積算処理=  
#  
値:2  
#  
値:6  
#  
値:3  
#  
値:3  
#  
値:0
  
#  積算値は108です。

キーボードから入力した複数個の整数の、加算と積算の計算結果を表示する :-
        キーボードから入力した複数個の整数の、加算,
        キーボードから入力した複数個の整数の、積算.

キーボードから入力した複数個の整数の、加算 :-
        write('=加算処理= \n'),
        キーボードから整数を得る(_整数),
        整数の加算(_整数,0,_合計),
        write('合計は %t です。\n',[_合計]),!.

キーボードから入力した複数個の整数の、積算 :-
        write('=乗算処理= \n'),
        キーボードから整数を得る(_整数),
        整数の積算(_整数,1,_積算値),
        write_formatted('積算値は %t です。\n',[_積算値]),!.

キーボードから整数を得る(_整数) :-
        write('値 : '),
        get_line(Line),
        整数診断(Line,_整数),!.
キーボードから整数を得る(_整数) :- キーボードから整数を得る(_整数).

整数入力診断(Line,_整数) :-
        atom_to_term(Line,_整数,_),
        integer(_整数),!.
整数入力診断(Line,_整数) :-
        write_formatted('入力された %t からは整数を得られません。再入力をお願いします。\n',[Line]),
        fail.

整数の加算(0,_合計,_合計) :- !.
整数の加算(_整数1,_合計1,_合計) :-
        _合計2 is _整数1 + _合計1,
        キーボードから整数を得る(_整数2),
        整数の加算(_整数2,_合計2,_合計).

整数の積算(0,_積算値,_積算値) :- !.
整数の積算(_整数1,_積算値1,_積算値) :-
        _積算値2 is _整数1 * _積算値1,
        キーボードから整数を得る(_整数2),
        整数の積算(_整数2,_積算値2,_積算値).