Programme xx;
var i : entier init à 0;
A[] : tableau init à 0;
procedure swap(x,y)
var z : entier;
debut
z := x;
x := y;
y := z;
fin
debut
i := 2;
A[2] := 99;
swap(i, A[i]);
fin
swap(i, A[i]);
IN
)Notations:
a := b
notation affectation algoa
←b
notation affectation internei := 2
(i
←2
);
A[2] := 99
(A[2]
←99
)
x
←i
(x
←2
)y
←A[2]
(y
←99
)z := x;
(z
←2
)x := y;
(x
←99
)y := z;
(y
←2
)= &i
= &A[i] = &A[2]
x
←i
(x
←2
)y
←A[2]
(y
←99
)z := x
(z
←2
)x := y
(x
←99
)y := z
(y
←2
)i := 2
(i
←2
)A[2] := 99
(A[2]
←99
)x
(i
←99
)y
(A[2]
←2
)Conclusion : i
et A[2]
ont été échangés et permutés
Mêmes étapes que 2)
, mais dans l'ordre suivant : b, c, a, d
Notation : Pour une variable x
, on appelle :
l.value
de x
, son emplacement (adresse) l(eft)r.value
, la valeur de x
r(ight)x := 10
(left := right)l.value
de x
est la même que celle de i
l.value
de y
est la même que celle de A[i]
c'est à dire A[2]
z := x
(z
←2
)x := y
(x
←99
)y := z
(A[2]
←2
)i
et A[2]
on été permutész := x
→ z
←i
x := y
→ i
←A[i]
y := z
→ A[i]
←z
z := i
(z
←2
i := A[i]
(i
←A[2]
←99
)A[i] := z
(A[99]
←2
)i
a été changéA[2]
inchangé maisA[99]
a été modifiéProcedure Quelmode(x)
A[1] := 6;
elt := 2;
x := x+3;
IN
= &A[1]
IN