【问题标题】:BASIC Program giving unexpected text output提供意外文本输出的 BASIC 程序
【发布时间】:2021-07-06 01:37:11
【问题描述】:

编辑:是的,这是 TI-84 的 BASIC。我错误地认为所有 BASIC 程序都是一样的。

我正在开发一个将十进制小时数转换为小时和分钟数的程序(E6B 模拟器的一部分),但我在返回诸如“5 HHOURS 7 MMINUTES”之类的内容时遇到问题,并且开头有第二个字母。我认为这是将变量解析为文本的问题,但我无法解决此问题

1  int(X)→H 
2  round(60(X-H),0)→M
3  ClrHome
4  If H=1
5  Output(3,1,"1 HOUR")
6  5+5→K     [This is just to add an extra line to the IF statement.]
7  If H<1
8  Goto 1
9  Output(3,4,"HOURS")
10 Output(3,1,H)
11 Lbl 1
12 If M=1
13 Output(3,10,"1 MINUTE")
14 If M<1
15 Goto 2
16 Output(3,13,"MINUTES") 
17 Output(3,10,M)
18 Lbl 2
19 Pause "PRESS ENTER TO EXIT"
20 ClrHome ```

【问题讨论】:

  • 由于每种 BASIC 语言都略有不同,如果我们知道这是哪种 BASIC 语言会有所帮助...
  • 它似乎是 TI-BASIC,就像 TI 图形计算器使用的那种(可能仍然如此,但我不知道)。

标签: calculator basic


【解决方案1】:

尝试像这样更改第 9 行和第 16 行:

9  Output(3,3,"HOURS")

16 Output(3,12,"MINUTES")

您可能还需要在代码中再添加两个 IF 语句,以检查 H

【讨论】:

  • 哇,我真的很惊讶改变文本的位置也改变了文本。你能解释一下我的错误是什么吗?是的,两位数的值将成为新代码的问题,是否有解决方案仍然可以解决问题?
  • 我认为在某些时候第 5 行和第 13 行被执行了 - 请注意,它们都写一个数字值,而不是一个空格,然后是 HOUR 和 MINUTE。稍后,当执行第 9 行和第 16 行时,数字被覆盖,字符串的 col 位置允许两个空格 - 额外的 M 和 H 来自第 5/13 行,并且永远不会被覆盖。
猜你喜欢
  • 2022-11-25
  • 1970-01-01
  • 2015-12-02
  • 1970-01-01
  • 2016-02-26
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多