2017-09-13 82 views
1

我有一个TI-84 Plus,我正在创建一个程序来计算n维矢量的大小。我在下面包含了我的代码和输出。TI-BASIC:索引到提示或输入命令

程序编辑器:

PROGRAM:NTHDMAG 
Disp "HOW MANY DIMENSIONS?" 
Prompt N 
{X,Y,Z,T,A,B,C,D,E,F,G,H,I,J,L,M,P,U,V,W}->L1 
For(K,1,N,1) 
L1(K)->Q 
Prompt Q 
End 

输出显示:

pgrmNTHDMAG 
HOW MANY DIMENSIONS? 
N=?3 
Q=?1 
Q=?2 
Q=?3 
Done 

我想要Q的与在提示在L1每个字母和索引L1(K)来代替命令会引发错误。 L1字母的值将是每个组件的值(例如,在这里,例如1i + 2j + 3k)。

我希望这是明确的,但我更愿意澄清,如果它不是。感谢您提供任何帮助!

+0

'Input'使得可以显示自定义字符串,但是这是真的,你首先需要的是什么?用户可以用通常的'{A,B,C'语法自己输入一个列表(这也可以使用带有可能方便的现有列表的'Rcl'),当然,'N'不是预先确定的 – harold

+0

@harold我可以让用户输入一个字符串,但这不是用户友好的,我不想要。我的意思是,如果必须的话,我可以,但我宁愿一次提出一个变量。 – ProgrammingEnthusiast

+0

'Input'允许自定义字符串被显示*(并且也作为输入读取,但这不是重点)。这就是你想要做的,对吧?替换“Q =?”通过自定义字符串? – harold

回答

1

这可能是你想要做什么,

Prompt N 
0->dim(|LT 
For(I,1,N 
    Input sub("XYZTABCDEFGHIJLMPUVW",I,1)+"=?",X 
    X->|LT(I) 
End 
Disp |LT 
DelVar |LT 

enter image description here

Input用来代替Prompt,使我们能够选择的字符串。该字符串是通过从"XYZTABCDEFGHIJLMPUVW"中获取一个单字母子字符串,然后附加"=?"来构建的,使其看起来就像Prompt,当然这很容易改变。它是SourceCoder的语法,所以|L意味着列表名称很奇怪。如果列表T被归档,则不起作用,但可以使其工作,但不应该使用IMO,通常归档列表意味着用户想保留它。

它更容易让用户输入一个列表本身虽然,例如

Input "Input List:",|LT 
Disp |LT 
DelVar |LT 

这使得(全名单)更方便用户输入诸如Rcl和列表操作,例如:

enter image description here

或许更为典型:

enter image description here

N不明确。

将结果留在Ans可能很有用。在最后一行通过评估一个值而不是一个正确的命令来隐式地打印出来,这样做不是那么有用,而是你可以做的事情。

Input "Input List:",|LT 
sqrt(sum(|LT^^2 
DelVar |LT 
Ans 

enter image description here

+0

非常感谢!我只有一个后续问题:由于列表是在for循环中声明的,我能否在我的代码中的其他地方调用由用户创建的变量? – ProgrammingEnthusiast

+0

@ProgrammingEnthusiast是的,变量是全局的,甚至没有声明,它是'0-> dim(| LT',如果它不存在,将创建列表 – harold

+0

@ProgrammingEnthusiast,尽管如果你的意思是变量X,Y,Z等..它不会这样工作,结果在这里列表中。没有合理的方法来分配一个“变量变量”(就像在大多数语言中那样)。 – harold