您如何将值附加到列表然后遍历列表?
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。我的问题是:
- 如何在计算机上用代码表示列表?当我在代码中写 L1 时,它实际上不是我认为的内置列表变量,这就是导致语法错误的原因。我觉得。
- 我需要重置列表变量吗?我第一次对此进行测试时,12.5*vertices-2 起作用了,所以它是否只是将列表变量永久设置为该变量,现在当它在程序的后续运行中向列表中添加内容时,它永远不会到达这些索引?
- 代码是否有任何缺陷导致它根本无法运行?我是 TI-Basic 的新手。
明白了,我傻了
1st,使用ti-connect
中语法参考中给出的列表变量
2、第二个for循环算法错误
使用 2ND 键输入列表变量。
要重置列表,有两种方法: 在程序末尾输入 DelVar L1
以删除变量(DelVar
可在 PRGM 菜单中找到) ,或者,如果您想保留变量但仍然删除内容,您可以通过使用 0→dim(L1)
将其大小设置为零来清除程序开头的列表(dim(
在 LIST 中找到菜单)。让程序自行清理并在 运行.
之后删除不必要的变量也是一个好习惯
你好像自己想出了算法
欢迎使用 TI-BASIC!
我正在尝试为我的 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。我的问题是:
- 如何在计算机上用代码表示列表?当我在代码中写 L1 时,它实际上不是我认为的内置列表变量,这就是导致语法错误的原因。我觉得。
- 我需要重置列表变量吗?我第一次对此进行测试时,12.5*vertices-2 起作用了,所以它是否只是将列表变量永久设置为该变量,现在当它在程序的后续运行中向列表中添加内容时,它永远不会到达这些索引?
- 代码是否有任何缺陷导致它根本无法运行?我是 TI-Basic 的新手。
明白了,我傻了
1st,使用ti-connect
中语法参考中给出的列表变量2、第二个for循环算法错误
使用 2ND 键输入列表变量。
要重置列表,有两种方法: 在程序末尾输入
DelVar L1
以删除变量(DelVar
可在 PRGM 菜单中找到) ,或者,如果您想保留变量但仍然删除内容,您可以通过使用0→dim(L1)
将其大小设置为零来清除程序开头的列表(dim(
在 LIST 中找到菜单)。让程序自行清理并在 运行. 之后删除不必要的变量也是一个好习惯
你好像自己想出了算法
欢迎使用 TI-BASIC!