このディレクトリの索引

#  次の手順に従って,入力された値の最大値を求めるプログラムを作成せよ. 
#   
#     1. 空のリストを変数intlistにセットする. 
#     2. キーボードから整数を1つ読み込み, 
#            * 整数が負の値だったら,読み込みは終了して3.へ進む. 
#            * それ以外だったら,intlistの最後にその数を追加して2.を繰り返す. 
#     3. 最大値を覚える変数maxnumを用意し,初期値として適切な値(各自で考えること)を代入する. 
#     4. リストに入っている整数を順に変数iに代入しながら,リストの値がなくなるまで次の操作を繰り返す. 
#            * maxnumとiの値を比較し,iの方が大きければ,maxnumの値をiで置き換える. 
#     5. 最後にmaxnumに入っている値が最大値なので,それを表示する. 
#   

示された手順に従って入力された値の最大値を表示する :-
    get_integer(N),
    読み込み(N,[],L),
    L = [A|R],
    最大値の表示(A,R).

読み込み(N,L,L) :-
    N < 0.
読み込み(N,L1,L) :-
    N >= 0,
    append(L1,[N],L2),
    get_integer(N2),
    読み込み(N2,L2,L).

最大値の表示(A,[]) :- write(A).
最大値の表示(A,[B|R]) :-
    A < B,
    最大値の表示(B,R).
最大値の表示(A,[B|R]) :-
    A >= B,
    最大値の表示(A,R).