对于...... TI-BASIC中的下一个循环

时间:2009-12-31 16:26:26

标签: calculator ti-basic

我写了一个程序(在我的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 =”的值为什么会这样?任何人都可以帮我理解这些工作吗?

4 个答案:

答案 0 :(得分:2)

也许尝试在程序结束时添加额外的End?据我所知,您需要为每个EndFor等提供相应的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)。