您如何将值附加到列表然后遍历列表?

How do you append values to list then iterate through lists?

我正在尝试为我的 TI-84 编写一个基本程序,用于计算二维平面上多边形的面积。作为参考,我在 python 中写了很多次,下面是它的作用:

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 应用程序并发送到计算器)时,return第一次引用其中一个列表时出现语法错误; "Check all arguments entered"。该行被星号包围。注释不在实际代码中

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)

当通过将 L1 更改为 list1 字符并将 L2 更改为 list2 字符来更改计算器上的代码时,它所做的只是 return 值 12.5*顶点数-2。我的问题是:

  1. 如何在计算机上用代码表示列表?当我在代码中写 L1 时,它实际上不是我认为的内置列表变量,这就是导致语法错误的原因。我觉得。
  2. 我需要重置列表变量吗?我第一次对此进行测试时,12.5*vertices-2 起作用了,所以它是否只是将列表变量永久设置为该变量,现在当它在程序的后续运行中向列表中添加内容时,它永远不会到达这些索引?
  3. 代码是否有任何缺陷导致它根本无法运行?我是 TI-Basic 的新手。

明白了,我傻了

1st,使用ti-connect

中语法参考中给出的列表变量

2、第二个for循环算法错误

  1. 使用 2ND 键输入列表变量。

  2. 要重置列表,有两种方法: 在程序末尾输入 DelVar L1 以删除变量(DelVar 可在 PRGM 菜单中找到) ,或者,如果您想保留变量但仍然删除内容,您可以通过使用 0→dim(L1) 将其大小设置为零来清除程序开头的列表(dim( 在 LIST 中找到菜单)。让程序自行清理并在 运行.

  3. 之后删除不必要的变量也是一个好习惯
  4. 你好像自己想出了算法

欢迎使用 TI-BASIC!