我写了一个程序(在我的TI-84计算器上)以满足以下练习:
编写一个程序,打印不等式ax + b< c,其中a,b和c由用户输入。在该程序中,x的域将是一组连续的整数,其中该组的最小和最大成员也将由用户输入。 (提示:使用FOR ... NEXT循环来测试从最小到最大的每个整数。)
这是我的代码:
:Input "A=",A
:Input "B=",B
:Input "C=",C
:Disp "DOMAIN FOR X"
:Input "MIN=",D
:Input "MAX=",E
:For(X,D,E,1)
:If AX+B<C
:Disp X
:End
我偶然发现了它;我真的不知道'如果'在'For'中是如何工作的。我想让它告诉我,如果没有解决方案,所以我尝试了:
:Input "A=",A
:Input "B=",B
:Input "C=",C
:Disp "DOMAIN FOR X"
:Input "MIN=",D
:Input "MAX=",E
:For(X,D,E,1)
:If AX+B<C
:Then
:Disp X
:Else
:Disp "NO SOLUTION"
:End
但这会返回“MIN =”的值为什么会这样?任何人都可以帮我理解这些工作吗?
答案 0 :(得分:2)
也许尝试在程序结束时添加额外的End
?据我所知,您需要为每个End
或For
等提供相应的If
。
答案 1 :(得分:0)
:Input "A=",A
:Input "B=",B
:Input "C=",C
:Disp "DOMAIN FOR X"
:Input "MIN=",D
:Input "MAX=",E
:For(X,D,E,1)
:If AX+B<C
:Then
:Disp X
:Else
:Disp "NO SOLUTION"
:Stop
:End
基本上,通过输入Stop
,只要没有解决方案,它就会停止循环。
答案 2 :(得分:0)
当您要求的变量与问题同名时,您可以使用&#34;:提示&#34;而不是&#34;:输入&#34;。此外,&#34;:提示&#34;允许多个变量。 例如,而不是
:Input "A=",A
:Input "B=",B
:Input "C=",C
使用
:Prompt A,B,C
在TI BASIC中,每一个:If,:For,:while,and:Repeat需要:End;否则,它根本不会工作。 这是如何使用:If和:For
:If condition
:Then:commands(condition=True)
[:Else:commands(condition=False)]
:End
:For(var,start,end[,interval])
:commands
:End
如果间隔= 1,则不需要将其放在那里。
使用:如果内部:For,请确保您的:End位于正确的位置。您可能还希望使用&#34;:&#34;将多个命令压缩到一行的字符。 至于GDund的答案,如果你想在那里结束程序那么有用,但是如果你想简单地离开循环,你可以做的是将计数器变量的值改为最终值,比如这样:
:For(X,D,E)
:If AX+B<C:Then
:commands:Else
:E-->X:End
:End
&#34; - &gt;&#34;是STO箭头。
如果您确实希望程序停在那里,您可以使用:停止代替:E - &gt; X 即可。 如果您在其他程序中使用此程序,则可以使用:返回。
所以你的代码应该是这样的:
:Prompt A,B,C
:Disp "DOM. FOR X"
:Input "MIN=",D
:Input "MAX=",E
:For(X,D,E)
:If AX+B<C:Then:Disp X
:Else:Disp "NO SOL.":E-->X:End
:End
答案 3 :(得分:0)
有一个变量来查看是否有解决方案。
:Input "A=",A
:Input "B=",B
:Input "C=",C
:Disp "DOMAIN FOR X"
:Input "MIN=",D
:Input "MAX=",E
:0->Q
:For(X,D,E,1)
: If AX+B<C
: Then
: Disp X
: 1->Q
: End
:End
:If Q=0
: Disp "NO SOLUTION"
变量Q是一个布尔值,用于查看是否存在解。如果有,则Q设置为true(1)。如果不是,Q仍为假(0)。