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".":