2016-08-21 151 views
0

我想爲我的TI-84編寫一個基本程序,它可以在2D平面上找到多邊形的面積。作爲參考,我在蟒蛇多次寫了這個,這裏是做什麼的:如何將值附加到列表然後遍歷列表?

x_list,y_list,verts,tot_1,tot_2=[],[],int(input("How many vertices are on the polygon: ")),0,0 //sets vars to defaults and gets num of vertices 
for i in range(verts): //gets X and Y values of each point for num. of vertices 
    x_list.append(float(input("X value of point %s: " % str(i+1)))) //appends x value given to x list 
    y_list.append(float(input("Y value of point %s: " % str(i+1)))) //appends y value given to y list 
for ind in range(verts-1): 
    tot_1 += (x_list[ind]*y_list[ind+1])-(y_list[ind]*x_list[ind+1]) 
print(str(abs((tot_1)/2))) //prints area: abs value of total over two 

這只是做了非常基本的算法,這裏也顯示在常規數學:http://www.mathopenref.com/coordpolygonarea.html

現在,當我嘗試寫在TI-Basic中(使用TI Connect應用程序併發送給計算器)也是如此,它會在第一次引用其中一個列表時返回語法錯誤; 「檢查所有輸入的參數」。該線被星號包圍。評論是不實際的代碼

通過改變L1到list1的性格和L2到列表2字符改變計算器的代碼時
ClrHome //clears screen 
Prompt V //gets number of vertices 
0→T //sets total to 0 
Disp V //displays vertices, was used for testing 
For(N,1,V,1) //runs code for number of vertices 
Input "x val: ",X //gets latest x val 
Input "y val: ",Y //gets latest y val 
**X→L1(1+dim(L1))** //appends x to listand 
Y→L2(1+dim(L2))  //y to list 
End //end for 

For(I,1,P,1) 
T+((L1(I)*L2(I+1))-(L2(I)*L1(I+1))→T //adds up total 
End 

Disp abs(T/2) 

,它所作的只是返回值12.5 *數量的頂點-2 。我的問題是:

  1. 如何在計算機上的代碼中表示列表?當我在代碼中寫入L1時,它實際上並不是我認爲的內置列表變量,這就是導致語法錯誤的原因。我認爲。
  2. 我需要重置列表變量嗎?我第一次測試這個時,12.5 * vertices-2工作,所以它只是永久性地設置列表變量,現在當它在程序的後期運行中添加列表時,它永遠不會到達那些索引?
  3. 代碼是否有任何瑕疵導致它根本不起作用?我完全是TI-Basic的新手。

回答

0

明白了,我很傻。

1,用在語法參考給出的列表變量TI-連接

2日,在第二個for循環的算法是錯誤的。

0
  1. 使用2ND鍵輸入列表變量。

  2. 要重置列表,有兩種方法:在程序結尾處輸入DelVar L1以刪除變量(在PRGM菜單中找到DelVar),或者如果要保留該變量但仍然刪除的內容,您可以通過將其大小設置爲零來清除程序開始處的列表0→dim(L1)(在LIST菜單中找到dim()。自行清理程序並在運行後刪除不必要的變量也是很好的做法。

  3. 你似乎已經想出了自己的算法。

歡迎使用TI-BASIC!