Я пишу программу для своего калькулятора TI-nspire на TI-BASIC, оптимизированной версии BASIC. Насколько я могу судить, TI-BASIC — компилируемый язык. У меня больше опыта работы с языками сценариев, где вы можете определить i как i+1, где интерпретатор добавляет предыдущее значение i к 1 и делает это новым значением i. Но так как BASIC, насколько я понимаю, скомпилирован, калькулятор установит значение i равным уравнению i+1 и циклу. Есть ли способ установить значение i для результата вместо уравнения?
i=i+1 в скомпилированных языках?
Ответы (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
i+1 → i
? Также проверьте эту страницу: tibasicdev.wikidot.com/nspire - person Lasse V. Karlsen   schedule 14.09.2015i + 1
– это выражение, а не уравнение. Уравнение подразумевает, что вы смотрите на что-то, что равно (приравнивается) к чему-то другому. И использование компилируемого или интерпретируемого языка не имеет нулевого отношения к тому, присваивается ли присваивание языка выражению или результату выражения. - person Joel Coehoorn   schedule 14.09.2015