2015-09-13 2 views
2

J'écris un programme pour mon calculateur TI-nspire dans TI-BASIC, une version optimisée de BASIC. D'après ce que je peux dire, TI-BASIC est un langage compilé. J'ai eu plus d'expérience en travaillant avec des langages de script, où vous pouvez définir i comme i + 1, où l'interpréteur ajoute la valeur précédente de i à 1 et fait que la nouvelle valeur de i. Mais puisque BASIC, à ma connaissance, est compilé, la calculatrice va définir la valeur de i à l'équation de i + 1 et la boucle. Y at-il un moyen de définir la valeur de i au résultat au lieu de l'équation?i = i + 1 dans les langages compilés?

+2

Pouvez-vous écrire votre code, quels sont les résultats attendus et quels sont les résultats * réels *? –

+0

Je serais très surpris si votre calculatrice avait un compilateur plutôt qu'un interprète plutôt léger. –

+1

N'utilisez-vous pas la syntaxe "store" sur ces calculatrices? 'i + 1 → je'? Vérifiez également cette page: http://tibasicdev.wikidot.com/nspire –

Répondre

0

Votre compréhension est erronée. La compilation ne change pas la sémantique d'une affectation. C'est toujours une mission.

Et puis, quel nombre utiliserait le compilateur comme solution pour i = i + 1?

2

Vous vous trompez, il est parfaitement correct de référencer une variable en affectant une valeur à la même variable, cela n'aboutit pas à une boucle. Cependant, dans TI-Basic, vous n'utilisez pas l'opérateur = pour affecter une valeur à une variable.

Pour z80 et 68k calculatrices utilisent le , le caractère comme ceci:

Local x 

2→x 
x+1→x 

Return x 

Ce retourne 3. (Testé sur une TI-89.)

Sur une utilisation :=, comme TI-Nspire ceci:

Local x 

x:=2 
x:=x+1 

Return x 

Cela renvoie également 3.