2017-10-18 82 views
1

所以我有一个程序在我的TI-84计算器上计算出三维形状的体积。下面是代码TI-84程序,代码进入错误if语句

ClrHome 
Disp "Z=Cuboid 
Disp "Y=Tri Prism 
Disp "X=Square Pyramid 
Disp "W=Tri Pyramid 
Disp "V=Cylinder 
Disp "U=Cone 
Disp "T=Sphere 
Prompt S 
Pause 

If S=Z 
Then 
Prompt W,L,H 
W*L*H→θ 
ClrHome 
Disp "V= 
Disp θ 
Pause 
ClrHome 
Stop 
End 

If S=Y 
Then 
Prompt A,B,C,H 
*formula*→θ 
ClrHome 
Disp "V= 
Disp θ 
Pause 
ClrHome 
Stop 
End 

If S=X 
Then 
Prompt H,L,W 
*formula*→θ 
ClrHome 
Disp "V= 
Disp θ 
Pause 
ClrHome 
Stop 
End 

这是我现在整个程序,问题是,当我输入值S作为X,(S = X),然后按回车键继续,程序进入若S = Y并要求我输入A,B,C和H.如果输入S = Z,则程序进入S = Z没有问题。如果我输入S = Y,程序进入S = Y没有问题。但是当我输入S = X时,程序进入S = Y。为什么?

回答

1

它的工作或多或少都是偶然的。此代码依赖于变量X,Y,Z等的值不同,因此可以将它们区分开来。这显然是一个非常脆弱的设计。

由于这是一个菜单,你可能有兴趣在Menu(命令:

Menu("Select Shape","Cuboid",C,"Tri Prism",TP,"Square Pyramid",SP 
Lbl C 
Prompt W,L,H 
W*L*H 
Disp Ans 
Stop 
Lbl TP 
Prompt A,B,C,H 
"dunno 
Disp Ans 
Stop 
Lbl SP 
Prompt H,L,W 
"dunno 
Disp Ans 

我把公式“裸”,然后Disp Ans这里,使用户可以方便地使用答案在随后的计算,而不必不必要地覆盖一些变量。