i=i+1 в скомпилированных языках?

Я пишу программу для своего калькулятора TI-nspire на TI-BASIC, оптимизированной версии BASIC. Насколько я могу судить, TI-BASIC — компилируемый язык. У меня больше опыта работы с языками сценариев, где вы можете определить i как i+1, где интерпретатор добавляет предыдущее значение i к 1 и делает это новым значением i. Но так как BASIC, насколько я понимаю, скомпилирован, калькулятор установит значение i равным уравнению i+1 и циклу. Есть ли способ установить значение i для результата вместо уравнения?


person Community    schedule 13.09.2015    source источник
comment
Можете ли вы опубликовать свой код, каковы ожидаемые результаты и каковы фактические результаты?   -  person Mike Christensen    schedule 14.09.2015
comment
Я был бы очень удивлен, если бы ваш калькулятор имел компилятор, а не довольно легкий интерпретатор.   -  person John Coleman    schedule 14.09.2015
comment
Разве вы не используете синтаксис хранилища на этих калькуляторах? i+1 → i? Также проверьте эту страницу: tibasicdev.wikidot.com/nspire   -  person Lasse V. Karlsen    schedule 14.09.2015
comment
i + 1 – это выражение, а не уравнение. Уравнение подразумевает, что вы смотрите на что-то, что равно (приравнивается) к чему-то другому. И использование компилируемого или интерпретируемого языка не имеет нулевого отношения к тому, присваивается ли присваивание языка выражению или результату выражения.   -  person Joel Coehoorn    schedule 14.09.2015
comment
@ LasseV.Karlsen Это для калькуляторов серий z80 и 68k; Nspire отличается.   -  person lirtosiast    schedule 16.09.2015


Ответы (2)


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

Для калькуляторов z80 и 68k используйте символ следующим образом:

Local x

2→x
x+1→x

Return x

Это возвращает 3. (Проверено на TI-89.)

На TI-nspire используйте :=, например:

Local x

x:=2
x:=x+1

Return x

Это также возвращает 3.

person PGmath    schedule 23.09.2015

Ваше понимание неверно. Компиляция не меняет семантику присваивания. Это все еще задание.

И потом, какое число компилятор использовал бы в качестве решения для i = i + 1?

person Jens    schedule 13.09.2015