このディレクトリの索引

%%%%%%%%%%%%%%%%%%% 診断(入力検査) 詳説 %%%%%%%%%%%%%%%%%%%%%%

データを入力する(_データ,_診断) :-
        入力を促す,
        get_line(Line),
        診断(Line,_データ),!.
データを入力する(_データ,_診断) :-
        データを入力する(_データ,_診断).

診断(_文字列,_データ,_診断) :-
        atom_to_term(_文字列,_データ,_),
        検査(_データ,_診断),
        検査結果評価(_データ,_診断),!.
診断(_文字列,_データ,_) :-
        再入力を求める(_文字列),
        fail.

%  検査結果の表示は再入力を求める前の節内で行ってしまう。場合によっては 再入力を求める/1 は削除。

入力を促す :- write('データを入力してください : ').

%  検査/2 の事例

検査(_データ,_診断) :- integer(_データ),_診断=0.
検査(_データ,_診断) :- atom(_データ),_診断=1.

%  検査結果評価/1 の事例

検査結果評価(_データ,0) :- !.
検査結果評価(_データ,1) :-
        write_formatted('%t は整数データではありません',[_データ]),
        fail.

再入力を求める(_文字列) :-
        write_formatted('入力された %t は適切な値を得られませんでした。\n再入力をお願いします。\n',[_文字列]).