Algorithm If语句中的TI基本语法错误

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)

我今天刚开始尝试制定化学气体法。我不太懂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)/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