Cómo hacer yo iterar a través de una lista en un programa de la calculadora TI-83

StackOverflow https://stackoverflow.com/questions/4190049

  •  10-10-2019
  •  | 
  •  

Pregunta

He creado un conjunto de programas para calcular el área bajo un gráfico utilizando diversos métodos de aproximación (punto medio, trapezoidales, Simpson) para mi clase de cálculo.

Este es un ejemplo de uno de mis programas (punto medio):

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

En lugar de aplicar estas reglas de aproximación a una función (Y1), me gustaría aplicarlos a una lista de datos (L1). ¿Cómo puedo iterar a través de una lista? Yo tendría que ser capaz de obtener el último índice en la lista para que un "bucle For" a ser bueno. No puedo hacer nada por el estilo L1.length como lo haría en Java.

¿Fue útil?

Solución

Se puede obtener la longitud de la lista mediante dim(). Que se pueden encontrar en 2nd->LIST->OPS->dim(. Sólo asegúrese de que utiliza una variable de lista de lo contrario dim() se quejan sobre el tipo. A continuación, podría índice en la lista con un subíndice.

por ejemplo.,

{1, 2, 3, 4} -> L1
For (X, 1, dim(L1), 1)
Disp L1(X)
End

Otros consejos

El bucle for es la forma más sencilla para iterar sobre una lista en la TI-Basic, como lo es en muchos idiomas. Jeff Mercado cubierto ya que, por lo que voy a mencionar algunas técnicas que son herramientas poderosas en situación especializado.

Mapeo sobre las listas

TI-Basic soporta operación de asignación simple a través de las listas que tienen el mismo efecto que una función de mapa en cualquier otro idioma. soporte de TI-Basic para esto se extiende a la mayor parte de función aritmética básica, y la selección de otras funciones.

La sintaxis no podía ser más simple. Si desea añadir algún número X a cada elemento en alguna lista L1 escribe X+L1→L1.

seq (

La mayoría de los bucles más de una lista en la TI-Basic puede ser reemplazado por el comando seq( hábilmente construida que superará el bucle en el tiempo y la memoria. Las excepciones a esta regla son bucles que contienen variables de E / S o de almacenamiento.

La sintaxis de este comando puede ser muy confuso, por lo que recomiendo leer sobre esta documentación antes de usarlo. En caso de que los troqueles de enlace, aquí está la información más relevante.

Resumen de comandos

Crea una lista mediante la evaluación de una fórmula con una toma de variable en una rango de valores, opcionalmente saltar por un paso especificado.

Sintaxis de los comandos

seq (fórmula, variable, la puesta en valor, de extremo valor [, paso])

Localización menú

Durante la edición de un programa, pulse:

LISTA segundo para entrar en el menú derecho LISTA para entrar en el OPS de submenú a 5 elegir ss (o use flechas.

Calculadora de compatibilidad

TI-83/84 / + / SE

Tamaño de emergencia

1 byte

La documentación debe hacer un trabajo bueno que explica la sintaxis para seq(, así que voy a proporcionar una muestra de casos de uso.

Si desea que el cuadrado de cada número entre 1 y 100 se podría hacer esto

Para Loop

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

o, este

SEC

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

El inconveniente de seq( es que no se puede hacer ninguna de E / S o almacenar cualquier variable dentro de la expresión.

predefinidas función de lista de iteración

Vaya al menú LIST y echa un vistazo a todas las operaciones bajo OPS y MATH. Estos función predefinida siempre va a ser más rápido que una de bucles o incluso una expresión seq( diseñado para hacer lo mismo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top