# permet d’utiliser une chaîne de caractères comme nom de variable ou comme nom de fonction ou comme nom d’instruction ou comme nom de répertoire.
# est surtout utile dans un programme.
# a comme argument une chaîne ou le nom d’une variable qui contient une chaîne ou une expression renvoyant une chaîne.
# transforme la chaîne en une expression mais n’évalue pas cette expression. Donc, pour faire une affectation, on ne doit pas écrire #"a:=2", mais on peut écrire #"a":=2 (voir aussi expr 9.5.6).
On tape :
a:="abc";#a:=3
ou :
#"abc":=3
On obtient :
La variable abc contient 3 abc ne semble pas affectee
On tape :
b:="ifactor";(#b)(54)
ou :
(#"ifactor")(54) erreur grammaticale
On obtient :
2*3^3
9.5.4 Pour utiliser une chaîne comme nom de variable ou comme nom de fonction : #
Modérateur : xcasadmin
Re: 9.5.4 Pour utiliser une chaîne comme nom de variable ou comme nom de fonction : #
C'est probablement a cause de la compatibilite Python, je vais regarder...
Re: 9.5.4 Pour utiliser une chaîne comme nom de variable ou comme nom de fonction : #
C'est effectivement la compatibilite Python qui empeche # de fonctionner. Une solution consiste a taper en debut de programme (ou en 1ere ligne d'une commande sur plusieurs lignes) //, ceci desactive la compatibilite Python. Ainsi
fonctionne
Code : Tout sélectionner
//
#"abc":=3; abc;
Re: 9.5.4 Pour utiliser une chaîne comme nom de variable ou comme nom de fonction : #
ok par exemple:
ou encore:
Code : Tout sélectionner
//
seq(#("u"+k),k,1,7);
makemat((j,k)->#("a"+(j+1)+(k+1)),3,3);
Code : Tout sélectionner
//
essai():={
local k;
pour k de 1 jusque 7 faire
#("u"+k):=k^2
fpour
return 0
}:;
Re: 9.5.4 Pour utiliser une chaîne comme nom de variable ou comme nom de fonction : #
juste une question, pourquoi ne peut-on pas faire:
Code : Tout sélectionner
//
seq(#("u"+k),k,1,7):=seq(k^2,k,1,7)
Re: 9.5.4 Pour utiliser une chaîne comme nom de variable ou comme nom de fonction : #
Parce que le membre de gauche de := n'est pas evalue. Il faut faire une boucle.