Как «вставить массив» строку в список в TI-Nspire?

В качестве домашнего задания я должен поменять местами буквы в заданной строке. Я уже разобрался, как это сделать, но не как их сразу вывести. он включает цикл for. поэтому, если я включу disp x в цикл for, он отобразит их между круглыми скобками и пробелом, но я хочу, чтобы они были все вместе, поэтому вместо

"a"

"b"

"c"

Я хочу "абв". Есть ли способ сделать это? Должен ли я помещать переменную в массив, а затем отображать массив после цикла for? Как вставить переменные в массив?

Кстати, это в TI-Nspire CX Cas.


person steedsnisps    schedule 01.02.2015    source источник


Ответы (3)


Чтобы добавить элемент x в массив A, используйте augment(A, {x}).

В вашем конкретном случае я бы использовал строковую переменную (назовем ее string), к которой я присоединяю следующую букву на каждой итерации цикла for. Итак, если следующая добавляемая буква находится в переменной letter, вы должны поместить следующую строку кода в конец цикла for: string := string & letter.

person PGmath    schedule 02.02.2015
comment
Спасибо, я не знал синтаксиса конкатенатора. - person steedsnisps; 02.02.2015

вот еще способ:

Локальный массив array[dim(массив)+1] := значение

person SamSol    schedule 01.10.2017
comment
Я думаю, что это лучше, чем augment - person eigenfield; 22.04.2019

Я бы ответил вам на примере, охватывающем ваш сценарий. Допустим, мы стремимся иметь массив, в котором перечислены элементы двоичных файлов, когда мы строим целое число в base2 (двоичном).

Define LibPub develope(a,b)=
Func
Local mi,m,q
mi:=mod(a,b)
q:=((a-mi)/(b))
Disp mi
While q≥b
  a:=q
  m:=mod(a,b)
  q:=((a-m)/(b))
  Disp m
EndWhile
EndFunc

Приведенная выше небольшая программа преобразует целое число в десятичной системе счисления в двоичную; однако каждый двоичный файл отображается в отдельной строке, как вы упомянули: ex:

develope(222,2)
0
1
1
1
1
0
1

введите здесь описание изображения

но это не то, что вы хотите, вы хотите в одной строке. ВАЖНО, ЧТО ВЫ ДОЛЖНЫ ХОТИТЬ, ЧТО КАЖДЫЙ ЭЛЕМЕНТ БЫЛ ДОСТУПЕН КАК ОТДЕЛЬНОЕ ЦЕЛОЕ ЧИСЛО, ПРАВИЛЬНО? КАК ЭЛЕМЕНТ В СПИСКЕ МАССИВА, ЭТО ТО, ЧТО ВЫ ИЩЕТЕ, ПРАВИЛЬНО?

Там мы идем:

    Define LibPub develope(n,b)=
Func
Local q,k,seti,set,valid
valid:=b
If valid>1 Then
  q:=n
  k:=0
  set:={}
While q≠0
    seti:=mod(q,b)
    q:=int(((q)/(b)))
    k:=k+1
    seti→set[k]
EndWhile
Else
  Disp "Erreur, La base doit être plus grand que 1."
EndIf
Return set
EndFunc

По сути, поскольку мы не знаем, сколько элементов будет добавлено в список массивов, set:={} объявляет массив с неопределенным dim (обычно длина) для динамического увеличения.

Команда seti→set[k] добавит значение seti, каким бы оно ни было, в позицию k списка массивов.

а return set просто возвращает массив.

если вам нужно получить доступ к определенному элементу, вы знаете, как это сделать: elementNumber5:=set[5]

Я хочу, чтобы это помогло.

person Saffa Seraj    schedule 09.03.2017