Есть ли способ сохранить список при программировании TI-83+?

Из любопытства начинаю учиться программировать свой калькулятор TI-83+. Часть моей последней программы включает в себя хранение чисел в списке. Как я могу добавить элементы в список на TI-83+ и как я могу перебрать их/получить к ним доступ?


person Amit    schedule 08.03.2012    source источник


Ответы (5)


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

Вот что бы вы сделали:

:A->L1(1+dim(L1))

Вот как это работает. Команда dim имеет 1 параметр. Этот параметр представляет собой список. Когда вы используете команду dim, она возвращает длину списка в параметрах. Когда вы хотите сослаться на определенное место в списке, вы используете синтаксис: имя_списка (местоположение). Итак, эта строка кода принимает значение переменной A и сохраняет его в ячейке L1, которая на 1 больше, чем длина L1, поэтому переменная A добавляется в конец L1.

Если вы хотите получить доступ к значению в списке, снова используйте синтаксис: имя_списка (местоположение). С другой стороны, если вы не знаете расположение искомого значения или просматриваете список и что-то делаете с каждым значением, вы можете использовать оператор for.

Как это:

:FOR(A, 0, dim(L1))
::L1(A)->B
::"do whatever you want with the value of L1(A) here"
:END

Или вот так:

:FOR(A, 0, dim(L1))
::if(L1(A) == "insert value being searched for here"):THEN
:::A->B
:::dim(L1)+1->A
::END
:END

Цикл for работает следующим образом: в начале цикла 0 сохраняется в переменной A. Затем цикл продолжается до тех пор, пока переменная A не станет больше, чем dim(L1). После каждого сброса цикла значение переменной A увеличивается на 1.

В первом примере программа перебирает каждое значение L1 и делает с каждым значением все, что вы хотите.

Во втором примере программа перебирает каждое значение L1. Когда значение L1 совпадает со значением, которое вы ищете, местоположение значения сохраняется в переменной B, которая будет использоваться для всего, что вы захотите позже. Затем значение переменной A устанавливается на 1 больше, чем длина L1. Поскольку значение переменной A больше, чем dim(L1), цикл for завершается.

person Nicholas Greene    schedule 03.03.2015

Элемент можно добавить в конец списка неизвестной длины следующим образом:

0→L1(1+dim(L1

В нормальных условиях попытка установить значение индекса, превышающее длину списка, приводит к ERR: INVALID DIM; однако, если индекс всего на 1 больше, чем длина списка, значение добавляется в конец списка.

person ankh-morpork    schedule 18.01.2015

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

Списки также лучше подходят для сохранения значений между выполнениями программы, чем просто использование переменных, которые могут быть изменены другими программами или математическими вычислениями.

person dgund    schedule 03.03.2013

Сначала вам нужно определить размер списка следующим образом:

3->dim(L1 

(если вы забудете, у вас будет ERR:Invalid Dim)

Нажмите Enter, и вы получите «10» в качестве ответа (не волнуйтесь, это нормально).

Вы можете найти dim( в [Каталоге] и -> это "[STO->].

Затем вы можете заполнить список такими данными:

2->L1(1)
3->L1(3)

Теперь, когда вы печатаете L1, вы получаете:

{2 0 3 0}

Первый индекс L1(1), а не 0 (как обычно).

Вы можете удалить список с помощью DelVar :

DelVar L1

Вы можете заполнить его с помощью Fill, отсортировать, преобразовать в матрицу .... Просто зайдите в меню List (2nd + Stat).

Вы можете перебирать список, используя цикл for (без foreach, используйте dim(L1) для верхней границы).

Дополнительную информацию можно найти в руководстве. вопросы из этого стопки вопросов калькулятора

Надеюсь, это поможет =)

person Thibault    schedule 29.04.2013

Вы можете сделать то, что сказал Тибо, заполнить, отсортировать, преобразовать (кстати, очень хорошо сказано). Однако вы также можете сделать:

3->L1(dim(L1))

Это добавит 3 к концу L1.

person puzzler7    schedule 08.01.2015