Page 1 of 1

Comprendre l'indirection

PostPosted: 23 Feb 2019, 12:06
by Céline72
Bonjour,
dans l'intention de comprendre le principe de l'indirection j'ai trouvé dans un topic ce programme :

Code: Select all
test()
prgm
local i,x,t
for i,0,3
"x"string(i)-t
i+1-#t
endfor
endprgm


Premier problème : je ne comprends pas du tout ce qu'il fait
Deuxième problème : quand je tente de le rentrer sur ma ti, au moment de l'enregistrement "x"string(i) est remplacé par "x"•string(i) et j'ai un message d'erreur "la variable n'est pas définie"

Quelqu'un peut-il m'éclairer sur ce programme et sur l'indirection en général ?
Merci

Re: Comprendre l'indirection

PostPosted: 23 Feb 2019, 12:31
by critor
Bonjour.

L'indirection (#) permet de stocker une valeur dans une variable dont le nom est donné par une chaîne de caractères.
C'est-à-dire que le nom de variable dans lequel on stocke devient lui-même modifiable sans avoir à retoucher au code.

Je pense que le programme test() a été mal écrit/copié.

En voici une correction :
Code: Select all
test()
prgm
  local i,x,t
  for i,0,3
    "x"&string(i)→t
    i+1→#t
  endfor
endprgm


Ce programme enregistre des valeurs dans les 4 variables x0, x1, x2 et x3, et ce alors que seulement 2 affectations apparaissent dans son code.

Re: Comprendre l'indirection

PostPosted: 23 Feb 2019, 13:13
by Céline72
Ca marche et c'est plus clair.
Merci