TI-BASIC
此條目尚未完工。原作者將會繼續進行編寫,而您也可以對該條目進行編輯。
TI-BASIC是德州儀器開發並內置在其圖形計算器產品中的一種面向過程的採用解釋運行方式的高級編程語言。
TI-BASIC有着類似於BASIC語言的語法,因為可以直接調用系統提供的計算函數從而擁有傳統BASIC語言所不具備的運算功能。
TI-BASIC具有簡單易學,使用靈活的特點。其缺點是運行效率不高,無法執行涉及硬件的操作,以及難以實現複雜的輸入輸出等。
隨着德州儀器計算器的不斷改進,TI-BASIC也在不斷地演化,然而,無論是哪種德州儀器圖形計算器,它們使用的TI-BASIC語法都是基本相同的。
基礎格式
TI-BASIC雖然屬於BASIC的一種,但它和QBASIC等通用語言有着一些不同。
程序開頭
- 在TI-Z80系列計算器上,一個TI-BASIC程序以
PROGRAM:程序名
為開頭的標誌。
- 在TI-68K系列計算器上,一個TI-BASIC程序以
储存程序的变量(形式参数1,形式参数2,...,形式参数n) :Prgm
為開頭;
- 在TI-Nspire系列計算器上,一個TI-BASIC程序以
Define 储存程序的变量(形式参数1,形式参数2,...,形式参数n)= Prgm
為開頭。
程序分行
TI-BASIC語言和QBASIC等BASIC分支不同,它不使用用戶輸入的行號。
在TI-68K系列計算器和TI-Z80系列計算器上,以一個冒號(:)作為新一行語句開始的標誌。因此,屏幕上的一行可以分寫多個語句。如果程序非常簡短,全部語句甚至可以寫在一行中。
在TI-Nspire中,換行符和獨立的冒號(:)都可以用於分隔語句。
程序結尾
- 在TI-Z80系列計算器上,一個程序不需要特殊的結尾標誌。只要程序的最後一行執行完畢,程序即宣告結束。
- 在TI-68K系列計算器和TI-Nspire系列計算器上,以EndPrgm(TI-68K系列計算器為:EndPrgm,包含該冒號)為程序結尾的標誌。若沒有這一標識程序結束的語句,計算器將發出警告,指示程序中缺失EndPrgm。
程序註釋
TI-BASIC的註釋符號是非常獨特的。
- TI-Z80系列計算器使用"作為註釋記號(不需要另一個引號來成對使用),在"後的內容均會被作為註釋,直到該行語句結束,新一行語句開始。注意:這個操作會改動Ans變量內的數據。因此,請不要在調用了Ans的語句的前一行語句中添加註釋。
- TI-68K和TI-BASIC系列計算器使用符號©(版權標誌)作為註釋符。寫在©標誌後的內容均作為註釋,直到新的一行語句的開始。
如果你的程序被設置為LibPublic並放置在MyLib中,那麼第一個©後面的內容將會顯示在目錄中作為參考。
變量類型和賦值
變量類型
TI-BASIC是一個弱類型的編程語言,用戶在向一個變量賦值和程序進行輸入輸出的時候,不需要指定變量的數據類型,用戶也無法指定一個變量的數據類型和進行數據類型的相互轉換,與此同時也不能自定義數據類型。這一切完全由計算器自身進行自動控制。
和其他高級語言不同,TI-BASIC的變量中存放的不限於數值,字符,字符串,數組等「常見的數據類型」——矩陣,函數,乃至是圖形,文本文檔,都可以被存儲在變量中。然而並不是所有的變量都能參與運算——一個變量能否參加一個運算取決於這個變量內存儲的數據是否為可參加該運算的數據類型。
特別地,對於帶有計算機代數系統(CAS)的德州儀器圖形計算器,如果一個變量沒有被賦予任何值卻參加了運算,則它將被當做一個代數式來對待。
TI-BASIC的變量名是大小寫無關的。例如,A和a被視為同一個變量,ParaMeter,paraMeter,parameter均被視為同一個變量——因此,不能使用大小寫來定義兩個不同的變量。
TI-BASIC中的變量在使用之前不需要進行預先定義。
TI-BASIC不使用常量和常變量。然而,可以通過Lock和Unlock命令來對一個變量的數據進行「鎖定」和「解鎖」,一定程度上起到「常量」的作用。
TI-BASIC允許通過Local命令定義局部變量。
很特殊地,一個TI-BASIC程序實際上也是存儲在一個函數變量中的,變量名就是該程序的程序名,編寫一個新的程序也就是把一段程序代碼作為數據賦給一個變量。因此,可以在一個程序內調用和編寫另一個程序(稱為「子程序」),便於複雜程序的編寫。
變量的賦值
TI-BASIC中有三種給一個變量賦值的方法。
- 變量名:=數據 。例如:
a:=3
代表將3這一數值賦給變量a。
- 數據=:變量名。例如:
3=:a
代表將3這一數值賦給變量a。
- 數據→變量名。例如:
3→a
代表將3這一數值賦給變量a。這是最簡單便捷的賦值方式。「→」可以通過STO鍵輸入。
另外,TI-Nspire保存程序時,會將所有的 =: 替換成 → 。
- Define 變量名=數據。例如:
Define a=3
代表將3這一數值賦給變量a。這種方式雖然麻煩,然而將一個程序或函數賦給一個變量(實際上就是編寫一個新的程序或函數)時,必須採用這種方式。
一些特殊的數據(如圖形和文本文檔)不能通過語句賦給變量。要把這些數據賦值給一個變量(實際上也就是把一個圖形/一段文本文檔儲存起來),需要在對應的繪圖程序/文檔編輯器等程序中進行操作。
關係表達式和布爾值
關係表達式
TI-BASIC中有如下幾種關係運算符:小於(<),小於等於(≤),大於(>),大於等於(≥),不等於(≠),等於(=)。其中,≤和≥可以通過shift+ >和shift+ <打出,也可以通過<=和>=代替。≠可通過shift+ =打出,它沒有"!=" "<>"等替代輸入方式。
此外要注意的是,TI-BASIC使用一個等號表示等於,而不像C/C++語言那樣使用雙等號(==)表示等於。
兩個關係表達式可以通過and(和),or(或),not(非),xor(異或)等邏輯運算符連接。除關係表達式外,兩個數值(或兩個布爾值)也可以通過邏輯運算符進行運算,兩個數值的運算結果服從邏輯運算的運算法則(而不是像C語言那樣將數值視為「真」和「假」來進行邏輯運算)。
一個關係表達式可以被直接進行運算並進行輸出。
- 如果關係表達式能夠得出確定結果,則返回結果為一個布爾值。
- 如果關係表達式無法得出確定結果(比如,其中含有未賦值變量),則返回結果為關係表達式本身。
- 如果關係表達式無意義(比如,對兩個複數比較大小),則可能返回關係表達式本身或導致程序報錯。
布爾值
TI-BASIC中有三個布爾值:true(真),false(假)和undef(未定義)。
在很多的時候,布爾值true用於指代「全體實數」,而false用於指代「無解」等信息。
undef是一個TI-BASIC語言特有的布爾值,且僅在TI-68K和TI-Nspire系列計算器上使用。它用於指代一個無意義數學運算產生的結果(如,0/0),在有些場合也指代「±∞」。undef雖然是一個布爾值,但不能參加任何邏輯運算。