Une variable locale ne devrait-elle pas couvrir la variable globale (d'un même nom) ?
Si oui, j'aurais l'exemple suivant où cela ne marcherait pas:
Code : Tout sélectionner
pgcd_nbr(a,b):= {
r:= b;
cpt:=0;
tantque not(r = 0) faire
  r := irem(a,b)
  cpt := cpt+1;
  a := b;
  b := r;
ftantque;
return cpt;
}:;
pgcd_nbr(12303433,34);
a_max(b):= {
local r;
r:=0;
pour k de b jusque 1000 faire
  p:=pgcd_nbr(k,b);
  si p>r alors
    r := p;
    k0 := k;
  fsi;
fpour;
return k0,r 
}:;
a_max(30) 
Je trouve que la procédure pgcd_nbr, appelée depuis a_max, modifie la variable r locale pour a_max (ça remet toujours r=0).
Est-ce normal ?
ps. version 1.1.0-36