affectation

Utilisation de Xcas

Modérateur : xcasadmin

jmmeny
Messages : 36
Inscription : dim. févr. 03, 2008 8:41 pm

affectation

Message par jmmeny » sam. mars 26, 2011 9:30 am

j'ai fait ceci :

echange(T):={
local tmp;
tmp=<T[0];T[0]=<T[1];T[1]=<tmp;
}:;

Lorsque je valide ensuite la ligne :
A:=[2,3,4,5];
puis je valide la ligne :
echange(A);A
les deux premiers éléments de la liste A sont échangés.

Lorsque je tape en une seule ligne :
A:=[2,3,4,5];echange(A);A

les deux affichages de A sont déjà avec échange, c'est à dire j'obtiens l'affichage :
[3,2,4,5],1,[3,2,4,5]

Quelle est l'explication ?

merci

parisse
Messages : 5882
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: affectation

Message par parisse » sam. mars 26, 2011 12:02 pm

C'est parce que echange(A) ne crée pas de copie (utilisation de =<), donc le A original est modifié et c'est donc modifié qu'il est affiché.
Dans le 1er cas, l'affichage a été réalisé avant la modification.

Répondre