Algorithm If语句中的TI基本语法错误
我今天刚开始尝试制定化学气体法。我不太懂TI basic的语法。它将在第一个If语句之后运行。即使输入的数字只与第一条if语句有关,它在计算第一条语句的答案后仍会立即出现语法错误。谢谢Algorithm If语句中的TI基本语法错误,algorithm,ti-basic,Algorithm,Ti Basic,我今天刚开始尝试制定化学气体法。我不太懂TI basic的语法。它将在第一个If语句之后运行。即使输入的数字只与第一条if语句有关,它在计算第一条语句的答案后仍会立即出现语法错误。谢谢 Input "Temp(k):",T Input "Pressure(atm):",P Input "Volume(L):",V Input "mol:",N If T=0 Then (P*V)/(N*0.0821)→T Disp "Temp(k):",T If P→0 Then (N*0.0821*T)
Input "Temp(k):",T
Input "Pressure(atm):",P
Input "Volume(L):",V
Input "mol:",N
If T=0
Then
(P*V)/(N*0.0821)→T
Disp "Temp(k):",T
If P→0
Then
(N*0.0821*T)/V→P
Disp "Pressure(atm)":,P
If V→0
Then
(N*0.0821*T)/P→V
Disp "Volume(L):",V
If N→0
Then
(P*V)/(0.0821*T)→N
Disp "mol:",N
?
如果p=0,我认为应该是(接下来的两个If
语句也是如此)
→代码>运算符是赋值,如(P*V)/(N*0.0821)→T
将(P*V)/(N*0.0821)
的值放入T
。另一方面,=
是比较运算符
此外,我还认为(尽管这会让我的记忆有点紧张)if
的then
变体也需要有结尾
?
如果p=0,我认为应该是(接下来的两个If
语句也是如此)
→代码>运算符是赋值,如(P*V)/(N*0.0821)→T
将(P*V)/(N*0.0821)
的值放入T
。另一方面,=
是比较运算符
此外,我认为(尽管这让我的记忆有点紧张)如果
的然后
变体也需要有一个结尾
。除了paxdiablo的答案,我认为Then
s应该与If
s在同一行,每个If
都需要一个附带的EndIf
语句来结束它应该执行的块
像这样:
If T=0 Then
(P*V)/(N*0.0821)→T
Disp "Temp(k):",T
EndIf
If P=0 Then
(N*0.0821*T)/V→P
Disp "Pressure(atm)":,P
EndIf
If V=0 Then
(N*0.0821*T)/P→V
Disp "Volume(L):",V
EndIf
If N=0 Then
(P*V)/(0.0821*T)→N
Disp "mol:",N
EndIf
除了paxdiablo的答案之外,我相信Then
s应该与If
s在同一行,每个If
都需要一个附带的EndIf
语句来结束它应该执行的块
像这样:
If T=0 Then
(P*V)/(N*0.0821)→T
Disp "Temp(k):",T
EndIf
If P=0 Then
(N*0.0821*T)/V→P
Disp "Pressure(atm)":,P
EndIf
If V=0 Then
(N*0.0821*T)/P→V
Disp "Volume(L):",V
EndIf
If N=0 Then
(P*V)/(0.0821*T)→N
Disp "mol:",N
EndIf
它应该是p=0
,而不是p→0
。(尽管这可能是一个打字错误)
If
语句后面必须跟一个关闭End
命令,该命令表示If
块的结束
它应该是p=0
,而不是p→0
。(尽管这可能是一个打字错误)
If
语句后面必须跟一个关闭End
命令,该命令表示If
块的结束
由于您使用的是TI-83/84 BASIC,下面是正确的代码
"Temp(k):→Str1
"Pressure(atm):→Str2
"Volume(L):→Str3
Input Str1,T
Input Str2,P
Input Str3,V
Input "mol:",N
If not(T
Then
PV/(N.0821→T
Disp Str1,T
End
If not(P
Then
N.0821T/V→P
Disp Str2,P
End
If not(V
Then
N.0821T/P→V
Disp Str3,V
End
If not(N
Then
PV/(.0821T→N
Disp "mol:",N
End
由于您使用的是TI-83/84 BASIC,下面是正确的代码
"Temp(k):→Str1
"Pressure(atm):→Str2
"Volume(L):→Str3
Input Str1,T
Input Str2,P
Input Str3,V
Input "mol:",N
If not(T
Then
PV/(N.0821→T
Disp Str1,T
End
If not(P
Then
N.0821T/V→P
Disp Str2,P
End
If not(V
Then
N.0821T/P→V
Disp Str3,V
End
If not(N
Then
PV/(.0821T→N
Disp "mol:",N
End
问题是您混淆了赋值运算符和相等运算符。等号运算符,它是表示与赋值运算符(->)相等的等号,赋值运算符将左侧的值存储在右侧的变量中。您希望显示相等,因此应该使用=
而不是-->
此外,如果if-then语句块中有多个操作,则必须使用“END”操作将其关闭。问题在于将赋值运算符与相等运算符混淆。等号运算符,它是表示与赋值运算符(->)相等的等号,赋值运算符将左侧的值存储在右侧的变量中。您希望显示相等,因此应该使用=
而不是-->
此外,如果if-then语句块中有多个操作,则必须使用“END”操作将其关闭。唯一需要添加的是末尾的END
语句。另外,需要更改If
语句
If T≠0
Then
(P*V)/(N*0.0821)→T
Disp "Temp(k):",T
End
唯一需要添加的是末尾的End
语句。另外,需要更改If
语句
If T≠0
Then
(P*V)/(N*0.0821)→T
Disp "Temp(k):",T
End
注:仅适用于68k计算器(即TI-89)注:仅适用于68k计算器(即TI-89)Disp“压力(atm)”,P
应为Disp“压力(atm)”,P
Disp“压力(atm)”,P
应为Disp“压力(atm)”,P