このディレクトリの索引

#  [1] 授業単元: プログラミング  
#  [2] 問題文(含コード&リンク):入力仕様を、入力座標は最大2桁までの整数を 
#      最大10件までとし、入力範囲のチェックと、最大件数のチェックを行う
#      プログラムの作成。

'入力座標は最大2桁までの整数を最大10件までとし、入力範囲のチェックと、最大件数のチェックを行う'(_入力座標ならび) :-
        length(Ln,10),
        座標入力(_座標),
        '入力座標は最大2桁までの整数を最大10件までとし、入力範囲のチェックと、最大件数のチェックを行う'(Ln,_座標,_入力座標ならび).

'入力座標は最大2桁までの整数を最大10件までとし、入力範囲のチェックと、最大件数のチェックを行う'(_,end_of_file,[]) :- !.
'入力座標は最大2桁までの整数を最大10件までとし、入力範囲のチェックと、最大件数のチェックを行う'([_],_座標,[_座標]) :- !.
'入力座標は最大2桁までの整数を最大10件までとし、入力範囲のチェックと、最大件数のチェックを行う'([_|Ln],_座標,[_座標|R2]) :-
        座標入力(_座標2),
        '入力座標は最大2桁までの整数を最大10件までとし、入力範囲のチェックと、最大件数のチェックを行う'(Ln,_座標2,R2).

座標入力(_座標) :-
        get_line(Line),
        座標入力診断(Line,_座標),!.
座標入力(_座標) :- 座標入力(_座標).

座標入力診断(Line,_座標) :-
        atom_to_term(Line,_座標,_),
        integer(_座標),
        number_chars(_座標,Chars),
        length(Chars,Len),
        len >= 1,
        Len =< 2,!.
座標入力診断(Line,_) :-
        writef('入力された%tからは2桁までの座標値は得られません。再入力をお願いします。\n',[Line]),
        fail.