2017-03-27 7 views
1
menu:- write('how much data to input : '),read(N1), 
    N2 is 0,loop(N2,N1). 


loop(N2,N1):-N1>0, N3 is N2+1, 
     write('Input data '),write(N3),write(' : '),read(M1), 
     N is N2+1, X is N1-1, loop(N,X). 

私はプロローグで新規にループ入力があります。ループ入力(M1)からリストに追加する方法リスト?私のデータは整数です。入力をリストに追加して合計し、リストの最大値と最小値を見つけよう

+0

なぜこれを行うのですか? Prologはインタラクティブなインタプリタを持っています。それは "トップレベル"と呼ばれています。C言語があれば自分のインタプリタを作る必要がありますが、Prologではインタプリタがあなたのために読むことができます。 –

答えて

1

あなたはちょうどあなたがこのgetコマンドラインからのPrologを起動する場合:

?- 

をそして、カーソルが入力物事にあなたを待っています。その後、括弧の間の整数のリストを作成し、変数に入れて、それがこのようになりますことができます:あなたはすべての要素は、あなたが書くことができ整数かどうかを確認したい場合は今

?- [1,2,3] = X. 

を:

?- [1,2,3] = X, 
    maplist(integer, X). 
あなたが本当にあなたは多分、このように行うことができ、一度にすべてをしたい場合は

?- [1,2,3] = X, 
    maplist(integer, X), 
    min_list(X, Min), 
    max_list(X, Max), 
    sum_list(X, Sum). 

:あなたが最小と最大を検索する場合

は今、あなたは、このようなライブラリーの述部を使用することができます

integers_min_max_sum([I|Is], Min, Max, Sum) :- 
    integers_min_max_sum_1(Is, I, I, I, Min, Max, Sum). 

integers_min_max_1([], Min, Max, Sum, Min, Max, Sum). 
integers_min_max_1([I|Is], Min0, Max0, Sum0, Min, Max, Sum) :- 
    integer(I), 
    Min1 is min(Min0, I), 
    Max1 is max(Max0, I), 
    Sum1 is Sum0 + I, 
    integers_min_max_1(Is, Min1, Max1, Sum1, Min, Max, Sum). 

?- integers_min_max_sum([1,2,3, ...], Min, Max, Sum). 

本当にこれはライブラリ述語を使用するよりも優れていますか?多分、そうでないかもしれない。

+0

よく私は、私はちょうど実験をプロローグをユーザーから入力を保存し、リストを使用して最大値と最小値を見つけることを知っている、それはプロローグを学ぶのに役立ちます。 –

関連する問題