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