跳至內容

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 程式設計

華夏公益教科書