TI-BASIC не имеет словарей
Там нет списков/массивы строк либо. Тем не менее, можно реализовать один, используя строки. Мы будем использовать Str1
для большой строки, содержащей все ключи и значения. Используйте разделитель (скажем ?
), чтобы запустить ключи, а другой (скажем !
), чтобы начать вводить значения. Вы можете представить список таким образом:
//starting delimiter
"?->Str1
//add value "SEARCH1" => "ANSWER1" at end
Str1+"SEARCH1!ANSWER1?→Str1
//add second value
Str1+"SEARCH2!ANSWER2?→Str1
Str1
теперь ?SEARCH1!ANSWER1?SEARCH2!ANSWER2?
.
Тогда для доступа к значению соответствующего ключа Str0
= SEARCH1
:
"SEARCH1→Str0
inString(Str1,"?"+Str0+"!")+length(Str0)+2 //now Ans = index of key
sub(Str1,Ans,inString(Str1,"?",Ans)-Ans //get the key
Производительность этого может быть несколько улучшена с помощью уловок. Однако по мере того, как Str1 становится больше, эта процедура замедляется - для поиска ключа выполняется линейный поиск O (n) по всей строке. Если вы хотите получить доступ к O(1)
, реализация будет значительно сложнее, так как она требует хэширования.
Добро пожаловать в переполнение стека! Отправьте сообщение [MCVE] (https://stackoverflow.com/help/mcve); вы, скорее всего, получите помощь здесь, если сообщите нам подробности о том, что вы уже пробовали, и о том, что вы на самом деле пытаетесь сделать. – dho
Я точно не понимаю. Вы пытаетесь реализовать структуру данных словаря, где ключи являются строками, а значения - строками? – lirtosiast
@lirtosiast Да, точно. Это возможно? –