このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1291471791/691
#  [1] 授業単元:プログラミング 
#  [2] 問題文(含コード&リンク):キーボードからいくつかの浮動小数点を読み込み、そのうち正の数値だけの 
#  合計を求めて表示するプログラムを作りなさい。数値の個数は事前には分からないものと 
#  し、0が入力されたら、合計すべき数値が尽きたものとする。 
#  

'キーボードからいくつかの浮動小数点を読み込み、そのうち正の数値だけの合計を求めて表示するプログラムを作りなさい。数値の個数は事前には分からないものとし、0が入力されたら、合計すべき数値が尽きたものとする。' :-
        findsum(_浮動小数点数,(
                    キーボードからいくつかの浮動小数点を読み込み(_浮動小数点数),
                    (   _浮動小数点数 = 0.0,!,fail;
                        _浮動小数点数 > 0.0)),
                _合計),
        write_formatted('入力された浮動小数点数の合計は %t です。\n',[_合計]),!.

キーボードからいくつかの浮動小数点を読み込み(_浮動小数点数) :-
        write('浮動小数点数を入力してください : '),
        get_line(Line),
        浮動小数点数の入力診断(Line,_浮動小数点数).
キーボードからいくつかの浮動小数点を読み込み(_浮動小数点数) :-
        キーボードからいくつかの浮動小数点を読み込み(_浮動小数点数).

浮動小数点数の入力診断(Line,0.0) :-
        atom_to_term(Line,0,_),!.
浮動小数点数の入力診断(Line,0.0) :-
        atom_to_term(Line,_浮動小数点数,_),!.
        float(_浮動小数点数),!.
浮動小数点数の入力診断(Line,_) :-
        write_formatted('入力された%tからは浮動小数点数を得られません。'),
        write('再入力をおねがいします。\n'),
        fail.