HP 計算器程式設計/命令/提示命令
外觀
< HP 計算器程式設計 | 命令
語法
BEEP <freq>;<time>:
細節
- 使用計算器的壓電蜂鳴器以 <freq> Hz 的頻率發出蜂鳴聲 <time> 秒。
示例
INT(RANDOM*9+1)?R: MSGBOX "Guess the number between 1 and 10." WHILE A?R REPEAT PROMPT A: IF A==R THEN BEEP 400;.2: BEEP 600;.5: MSGBOX "You win!": STOP: ELSE BEEP 600;.2: BEEP 400;.5: IF A>R THEN MSGBOX "Lower..": ELSE MSGBOX "Higher..": ELSE END: ELSE END:END:
此程式從 1 到 10 生成一個隨機數,並提示使用者猜測。如果使用者猜對了,計算器會以升高的音調發出兩次蜂鳴聲(典型的“正確”聲音)。否則,它會以降低的音調發出兩次蜂鳴聲(典型的“錯誤”聲音),並告訴使用者答案是高於還是低於他們指定的答案。
語法
CHOOSE <variable>; "<title-name>"; "<option-1>"; "<option-2>"; ... "<last-option>":
細節
- 允許使用者從螢幕上給出的選項集中進行選擇。
- 在兩個 ; 後,CHOOSE 開始在螢幕選單上分配空間並將值分配給這些空間。因此,在語法示例中,<option-1> 的值為 1 - 如果選擇它,<variable> 將設定為 1。
- 此選項最適合與 CASE 結合使用以定義每個選項的效果。
危險
- CHOOSE 從 <variable> 的當前值作為所選專案開始。**因此,如果變數的值不是正整數,或者大於選項數量,則將無法使用選單。**
- 以下問題的簡單解決方法是在 CHOOSE 命令的開頭始終插入 1?<variable>,以確保預設選擇第一個選項。
語法
DISP <line>;"<text>":
細節
- 在第 <line> 行(1 到 7)上顯示 <text>。
- 儘管在 ERASE 之後有 8 行的空間,但將 <line> 設定為小於 1、非整數或大於 7 將導致文字根本不列印(沒有錯誤訊息)。
- DISPXY 能夠處理在“第 8 行”上的列印,如果您需要更多空間。
危險
- DISP 會擦除它即將列印的整行的內容,無論該區域中是否已經繪製了畫素。因此,如果您打算在上面繪製,您應該始終先使用 DISP。DISPXY 在一定程度上解決了這個問題,儘管使用它仍然會導致在您的繪圖上強制顯示一些空格。
- 如果您希望清空某一行文字,則可以使用它,只需使用 DISP <line>;" ":. 這可能有利,因為它會混淆您的程式碼(如果您想限制人們對您的程式碼的修改),而且因為它比任何其他方法都要快得多(儘管它允許最少的控制)。
示例
ERASE:DISP 1;"Hello World!": FREEZE:
在擦除屏幕後,在螢幕的第一行顯示普遍存在的“Hello World”,並在最後凍結程式,以便使用者有時間閱讀訊息。
1?A:1?B:ERASE: FOR X=1 TO 500; A+B?C:B?A:C?B: B/A?P: DISP 1;B":"A: DISP 2;P:
**高階:**使用遞增的斐波那契數之間的比率來近似phi。DISP 能夠在顯示其有效負載之前擦除該行,這會產生一個看起來很有趣的“迭代”效果。
語法
DISPTIME:
細節
- 在訊息框中顯示日期和時間。
- 時間儲存在 TIME 和 DATE 實數變數中。
- **TIME** 語法:hh.mmss(hh 為 24 小時制)。例如,下午 2:30 為 14.3000。由於變數是整數,末尾的 0 實際上會持續 13 個字元;這是因為 TIME 變數實際上也儲存了秒的分數。(因此,您可以將下午 1 點設定為 13,或將 12:05:30.136 設定為 12.0530136。)
- **DATE** 語法:mm.ddyyyy。例如,2005 年 9 月 21 日為 9.212005。
示例
此程式稱為“TimeUtils”。
1?M:CHOOSE M; "Display time"; "Set time": CASE IF M==1 THEN DISPTIME:STOP:END IF M==2 THEN MSGBOX "Hour? (24h time)": PROMPT H: MSGBOX "Minute?": PROMPT M: H+M/100?TIME: MSGBOX "Set. Date?": PROMPT D: MSGBOX "Month?": PROMPT M: MSGBOX "Year?": PROMPT Y: D+M/100+Y/1000?DATE: MSGBOX "Set.":RUN "TimeUtils":END END:
此程式是一個多功能應用程式,允許您同時顯示和編輯(更正)當前時間。考慮到“詳細資訊”中關於 DATE 和 TIME 變數的資訊,大多數內容應該是顯而易見的。
語法
FREEZE:
細節
- 暫停程式執行,等待來自鍵的輸入。
- 最好在使用繪圖命令後使用,否則繪圖會立即從螢幕上消失。
- 對於那些瞭解更高階程式語言的讀者來說,它與 GETKEY 相同,但它不返回值給計算器(即無法檢測到按下了哪個鍵)。
語法
MSGBOX "<message>":
細節
- 在螢幕上顯示訊息的最簡單方法,只需要顯示文字即可;然而,這也是它的弱點 - 它幾乎沒有提供控制。
- 自動包含 FREEZE,也就是說,您需要按一個鍵才能退出 MSGBOX。
示例
PROMPT A: MSGBOX "You entered "A".":