序言:用户根据其大小插入int输入和检查输入

问题描述:

最近我参加了一些关于AI和逻辑的研讨会,并开始学习序言。有一个简单的C++程序,我希望使用prolog来创建它的逻辑。序列为:序言:用户根据其大小插入int输入和检查输入

1)用户插入整数输入(例如:3)。

2)提示用户输入ID 3,其它的大小必须在5和整数(例如:11111,22222,333A)

3)如果输入是大于或小于5或不是整数,它将失败。

所以,我已经做了一些研究和教程,因为我刚开始学习序言,但我似乎无法找到正确的答案,我的问题。我尝试了几次,但总是有错误。请帮帮我。我非常感谢你的帮助。谢谢

p/s:这不是功课。这只是我想学习和尝试的东西。谢谢你。

+0

也许你可以展示你的尝试?一旦你阅读了这些值,你想要做什么? – lurker 2015-04-04 16:36:37

+0

对不起,我忘了把我所做的。 gate: - writeln('有多少人?(以。结尾)或0和0停止程序'), read(Z)。 %得到用户输入 bas(0,0): - !。 矩阵: - \t writeln('请插入您的基卡ID(终止于。)'); (X), \t(X), \t。 %根据用户输入 ISDIGIT(X)这一项是id组: - (数(X), X> = 0, X = true \t \t; writeln('[0-5] AND Number'), \t \t失败)。 bas(X): - Z是X, 格式('您可以进来',[X,Z]), gate。 但我得到了错误因为它似乎不完整 – umika1150 2015-04-05 08:00:47

+0

请不要在评论中添加代码请编辑你的问题并把它放在那里,格式正确。 – lurker 2015-04-05 08:59:23

这真的很简单吗?

'prompt user'(A,B,C) :- maplist('size must be 5 and integer', [A,B,C]). 
'size must be 5 and integer'(N) :- read(N), integer(N), N >= 10**4, N < 10**5. 

5 ?- 'prompt user'(A,B,C). 
|: 1111. 
false. 

6 ?- 'prompt user'(A,B,C). 
|: 11111. 
|: 21222. 
|: 99999. 
A = 11111, 
B = 21222, 
C = 99999. 
+0

好的我明白了。所以基本上用户需要输入基于A,B和C的3个ID吗?然而,如果用户自己设置了号码呢?就像用户输入2,然后prolog提示输入2 id,如果用户输入5,那么他需要输入5 id。 – umika1150 2015-04-05 07:58:52