Как перебрать список в программе калькулятора TI-83 - PullRequest
5 голосов
/ 16 ноября 2010

Я создал набор программ для вычисления площади под графиком, используя различные методы аппроксимации (средняя точка, трапеция, симпсон) для моего класса Calculus.

Вот пример одной из моих программ (средняя точка):

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).Как мне перебрать список?Мне нужно было бы иметь возможность получить последний индекс в списке, чтобы "цикл" был хорошим.Я не могу сделать ничего подобного L1.length, как я сделал бы в Java.

Ответы [ 2 ]

5 голосов
/ 16 ноября 2010

Вы можете получить длину списка, используя dim(). Это можно найти в 2nd->LIST->OPS->dim(. Просто убедитесь, что вы используете переменную списка, иначе dim() будет жаловаться на тип. Затем вы можете внести в список индекс с нижним индексом.

например.,

{1, 2, 3, 4} -> L1
For (X, 1, dim(L1), 1)
Disp L1(X)
End
3 голосов
/ 28 февраля 2015

Цикл for - это самый простой способ перебора списка в TI-Basic, как и во многих языках.Джефф Меркадо уже рассмотрел это, поэтому я упомяну несколько методов, которые являются мощными инструментами в специализированных ситуациях.

Отображение по спискам

TI-Basic поддерживает простую операцию отображения по спискам, которая имеет тот же эффект, что и функция отображения на любом другом языке.Поддержка TI-Basic для этого распространяется на большинство основных арифметических функций и выбор других функций.

Синтаксис не может быть проще.Если вы хотите добавить какое-либо число X к каждому элементу в некотором списке L1, введите X+L1→L1.

seq (

Большинство для циклов над списками в TI-Basic можнобыть заменено умно сконструированной командой seq(, которая превзойдет цикл for во времени и в памяти. Исключениями из этого правила являются циклы, содержащие ввод-вывод или хранение переменных.

Синтаксис этой команды может быть довольносбивает с толку, поэтому я рекомендую прочитать эту документацию перед ее использованием. В случае утери этой ссылки, вот самая важная информация.

Сводная информация о команде

Создаетсоставьте список, оценивая формулу с одной переменной, принимающей диапазон значений, опционально пропуская на указанный шаг.

Синтаксис команды

seq (формула, переменная, начальное значение, конечное значение [, шаг])

Расположение меню

Во время редактирования программы нажмите:

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

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

Недостаток seq( заключается в том, что вы не можете выполнять какие-либо операции ввода-вывода или сохранениялюбые переменные внутри выражения.

Предопределенная функция итерации списка

Перейдите в меню LIST и проверьте все операции в OPS и MATH.Эти предопределенные функции всегда будут быстрее, чем циклы for или даже выражение seq(, предназначенное для того же самого.

...