跳至内容

TI-Basic Z80 编程/错误

来自维基教科书,开放的书籍,为开放的世界

在 TI-84 上编程时,计算器会假设编写的代码有效。如果在执行代码时发现意外标记或遇到其他无效语句,TI-84 会抛出错误。计算器将停止执行程序中的代码,并在屏幕上显示错误类型。错误分为两种:语法错误运行时错误

例如,考虑以下示例

:Output(1,"TI84")


的语法Output(命令期望两个整数,然后是一个字符串。在此示例中,第二个参数是字符串,计算器不知道如何解释它。在这种情况下,计算器会抛出错误

ERR:ARGUMENT
1:Quit
2:Goto

代码执行停止,并显示一个菜单。第一个选项退出程序并返回到主屏幕。第二个选项将打开代码编辑器并滚动到代码中发生错误的行。

第二种错误是运行时错误。这些错误不一定可以通过代码的外观来检测。考虑以下示例,它显示输入值的倒数

:Prompt A
Disp A-1


代码在大多数情况下都能正常工作

A=?4
             .25

但是,考虑当用户输入0

A=?0
             
ERR:DIVIDE BY 0
1:Quit
2:Goto

这种行为可能是不可取的,因为如果发生错误,代码将停止执行,不会继续执行。因此,在考虑计算和语句时,必须考虑所有极端情况。在这种情况下,在Disp之前添加一行:If A≠0可以防止错误发生。

运行时错误不一定必须显示错误才能是错误。例如,一个应该显示字母表中偶数字母的程序,但实际上显示的是字母表中奇数字母,就会出现运行时错误,因为程序没有按预期工作。这些错误可能是最难修复和最容易修复的错误!

您试试看!

[编辑 | 编辑源代码]

检查以下示例,确定出现的错误类型,并给出解决错误的修复方法。

以下程序应该将 10 个随机数存储到L1中,但包含错误。找到、识别并修复错误。

0→dim(L1
For(I,1,10
rand→L1[I]
End


解决方案

错误在第 3 行。给定程序使用方括号([])而不是圆括号。修复了错误的相同程序

0→dim(L1
For(I,1,10
rand→L1(I)
End

在此示例中,程序应该输出L1中的最大数字(此程序假设L1).

-9E99→L
For(A,1,dim(L1
If L1(A)>L
A→L
End
Disp L


解决方案

错误在第 4 行。给定程序将最大数字的索引存储到L中,而应该存储值本身。修复后的程序

-9E99→L
For(A,1,dim(L1
If L1(A)>L
L1(A)→L
End
Disp L

将来,直接使用max(.


上一个:菜单
下一个:提示、技巧和优化
目录:TI-Basic Z80 编程

华夏公益教科书