【问题标题】:TI Basic Syntax Error in If StatementsIf 语句中的 TI 基本语法错误
【发布时间】:2015-01-05 04:24:17
【问题描述】:

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

【问题讨论】:

  • Disp "Pressure(atm)":,P 应该是Disp "Pressure(atm):",P

标签: algorithm ti-basic


【解决方案1】:
If P→0

?

我认为应该是 If P=0(接下来的两个 if 语句也是如此)。

运算符是赋值,如(P*V)/(N*0.0821)→T(P*V)/(N*0.0821) 的值放入T。另一方面,= 是比较运算符。

此外,我认为(虽然这有点延长我的记忆力)ifthen 变体也需要有一个end

【讨论】:

    【解决方案2】:

    问题在于您将赋值运算符与等号运算符混淆了。等号运算符表示与赋值运算符 (-->) 相等的等号,赋值运算符 (-->) 将左侧的值存储在右侧的变量中。你想显示平等,所以你应该使用= 而不是-->

    此外,如果您在 if-then 语句块中有多个操作,则必须使用“END”操作将其关闭。

    【讨论】:

      【解决方案3】:
      1. 应该是P=0,而不是P→0。 (虽然这可能是一个错字)

      2. If 语句后面必须跟一个结束的End 命令,这表示If 块的结束。

      【讨论】:

        【解决方案4】:

        由于您使用的是 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
        

        【讨论】:

          【解决方案5】:

          除了 paxdiablo 的回答之外,我认为 Thens 应该与 Ifs 位于同一行,并且每个 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
          

          【讨论】:

          • 注意:仅适用于 68k 计算器(即 TI-89)
          【解决方案6】:

          唯一需要添加的是末尾的End 语句。此外,If 语句需要更改。

          If T≠0
          Then
          (P*V)/(N*0.0821)→T
          Disp "Temp(k):",T
          End
          

          【讨论】:

            猜你喜欢
            • 2011-09-22
            • 2015-09-08
            • 1970-01-01
            • 2018-08-30
            • 2010-10-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多