-1

SWI プロローグを使用して、次のコードに従って 2 つの異なる値を挿入するようにユーザーに依頼します。

base:-
   write('\n Please enter the base and exponent or 0 and 0 to stop the program:'),
   read   (X),
   read(Y),
   bas(X,Y).

bas(0,0):- !.
bas(X,Y):-
   f is X*Y,
   write('The power of '),write(x),
   write(' raised to '),write(y),
   write(' is '),write(f),
   base.

しかし、相談した後、最初の行が表示されます(番号を挿入します)が、値を挿入するとエラーが表示されます。では、何が間違いで、プログラムが私の異なる値を読み取れないのはなぜですか

4

1 に答える 1

0

ここでわずかな再構成

base :-
    writeln('enter base and exponent (terminate with .) or 0 and 0 to stop the program'),
    read(X),
    read(Y),
    bas(X,Y).

bas(0,0):- !.
bas(X,Y):-
    P is X ^ Y,
    format('The power of ~w raised to ~w is ~w~n', [X,Y,P]),
    base.

私には、そのような相互作用は少し奇妙に思えます:

?- base.
enter base and exponent (terminate with .) or 0 and 0 to stop the program
|: 4.
|: 2.
The power of 4 raised to 2 is 16
enter base and exponent (terminate with .) or 0 and 0 to stop the program
|: 0.
|: 0.
true.
于 2013-03-17T21:51:44.483 に答える