6

我为我的微积分课创建了一组程序来使用各种近似方法(中点、梯形、辛普森)计算图形下的面积。

这是我的一个程序(中点)的示例:

Prompt A,B,N
(A-B)/N->D
Input "Y1=", Y1
0->X
0->E
For(X,A+D/2,b-D/2,D)
Y1(x)+E->E
End
Disp E*D

我不想将这些近似规则应用于函数(Y1),而是将它们应用于数据列表(L1)。如何遍历列表?我需要能够获得列表中的最后一个索引才能使“For Loop”变得更好。我不能像在 Java 中那样做任何像 L1.length 这样的事情。

4

2 回答 2

6

您可以使用 获取列表的长度dim()。可以在2nd->LIST->OPS->dim(. 只要确保您使用列表变量,否则dim()会抱怨类型。然后,您可以使用下标索引到列表中。

例如,

{1, 2, 3, 4} -> L1
For (X, 1, dim(L1), 1)
Disp L1(X)
End
于 2010-11-16T00:24:04.697 回答
3

for 循环是在 TI-Basic 中迭代列表的最简单方法,就像在许多语言中一样。Jeff Mercado 已经介绍了这一点,所以我将提到一些在特殊情况下是强大工具的技术。

映射列表

TI-Basic 支持列表上的简单映射操作,其效果与任何其他语言中的映射函数相同。TI-Basic 对此的支持扩展到最基本的算术功能,以及其他功能的选择。

语法再简单不过了。如果您想为您键入 X的某个列表中的每个元素添加一些数字。L1X+L1→L1

序列(

TI-Basic 中列表上的大多数 for 循环都可以替换为巧妙构造seq(的命令,该命令将在时间和内存上优于 for 循环。此规则的例外是包含 I/O 或存储变量的循环。

这个命令的语法可能很混乱,所以我建议在使用它之前阅读这个文档。如果该链接失效,这里是最相关的信息。

命令摘要

通过评估一个具有一系列值的变量的公式来创建一个列表,可以选择跳过指定的步骤。

命令语法

seq(公式, 变量, 起始值, 结束值 [, step])

菜单位置

编辑程序时,按:

2nd LIST 进入 LIST 菜单 RIGHT 进入 OPS 子菜单 5 选择 seq(,或使用箭头。

计算器兼容性

TI-83/84/+/SE

代币大小

1 个字节

文档应该很好地解释了 的语法seq(,所以我只提供一个示例用例。

如果你想要 1 到 100 之间的每个数字的平方,你可以这样做

循环

DelVar L1100→dim(L1
for(A,1,100
A²→L1(A
End

或这个

序列

seq(A²,A,1,100→L1

的缺点seq(是您不能执行任何 I/O 或在表达式中存储任何变量。

预定义列表迭代函数

转到LIST菜单并检查 和 下的所有OPS操作MATH。这些预定义的函数总是比 for 循环甚至是seq(设计用来做同样事情的表达式更快。

于 2015-02-28T14:15:32.050 回答