2017-09-13 108 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