Dans chacun des cas suivants, que va afficher MAPLE? (Trouvez le résultat avant de taper les instructions.)
>
restart;
y:=x+2; x:=1; y; x:=2: y; z:=x; x:=5; z;
>
restart;
x:=a+b+c; a:=1: b:=2: c; x; c:=4; x; c:=7; x;
>
restart;
x:=y: y:=3: x; y:=4; x; y;
>
restart;
x:=1: y:=x+2; y; x:=10; y;
>
restart;
x:=1: y:='x'+2; y; x:=10; y;
>
restart;
ni:=no+6: no:=2: ni; ni:='no'+6: no:=4: ni;
>
restart;
t:=2; x:=t+1; x; t:=4; x; t:='t'; x:=t+1: x;
>
restart;
s:=0:x:=1:s:=s+x:x:=x+1:s:=s+x:x:=x+1:s:=s+x:
x:=x+1:s:=s+x:x:=x+1:s:=s+x:s;
>
restart;
x:=1:y:=2:x/y;evalf(x/y);x*y;'x'/y;
>
restart;
v:=2*u^3+2*u^2+5; t:=u^2+v+5; t; v:=u-3; t;
>
restart;
v:=2*u^3+2*u^2+5; t:=u^2+'v'+5; t; v:=u-1; t;
Exercice 2 : Utilisation des variables
Calculer la valeur du polynôme P=4x^2+3x+1 pour x=1/2.
Calculer la valeur du polynôme Q=5x-2 pour x=2.
Calculer la valeur de P+Q pour x=1/3.
> restart;P:=4*(x^2)+3*x+1:x:=1/2:P;
> Q:=5*'x'-2:x:=2:Q;
> x:=1/3:P+Q;
> evalf(%);
L'opérateur % reprend la dernière valeur obtenue. Ici, c'était 19/9.
Exercice 3 : affectation, permutation
a) Ecrire en Maple une suite d'instructions permettant déchanger les valeurs de deux variables A et B, et ce quel que soit leur contenu préalable.
>
restart; A:=3;B:=2;
temp:=A:
A:=B:
B:=temp:
A;B;
b) On dispose de trois variables A, B et C. Ecrivez une suite d'instructions transférant à B la valeur de A, à C la valeur de B et à A la valeur de C (toujours quels que soient les contenus préalables de ces variables)
>
restart; A:=-12;B:=142;C:=0;
temp:=C:
C:=B:
B:=A:
A:=temp:
A;B;C;
Exercice 4 : affectation ; contrôle des types; type booléen
Donner lévaluation des variables dans les cas suivants
Variable A, B, C, D en Entier ; E, F,G en booléen
>
restart;A:= 1; B:= A + 3; A := 3;
>
restart;A:=5; B := 3; C := A + B; A := 2; C := B - A;
> restart;A := 5; B := A + 4; A := A + 1; B := A - 4;
> restart;A := 3; B := 10; C := A + B; B := A + B; B := A + B; A := C;
> restart;A := 5; B := 2; A :=B; B := A;
> restart;A:= 5; B := 3; E := evalb(A < B); F := not E; G := (E and F);
> restart;A:= 5; B := 3; E := evalb(A > B); F := not E; G := (E or F);
> restart;A :=6; B := 6 ; E := evalb(A = B); F := A;
Exercice 5 : évaluation finale
> restart;
> Z:=U+T;
> U:=X+Y;
> T:=X*Y;
> X:=R+S;
> Y:=R*S;
> Z;
> eval(Z,1);
> eval(Z,2);
> eval(Z,3);
> eval(Z,4);
Exercice 6 : évaluation finale
En supposant que les variables sont non affectées et les instructions sont indépendantes, les commandes suivantes sont-elles équivalentes:
a:=b;b:=c;c:=a; a;b;c;
a:=b;b:='c';c:=a;a;b;c;
a:=b;b:=c;c:='a';a;b;c;
Quelle est la réponse dans chaque cas? Pourquoi? (expliquer par un schéma) (vu en cours)
>
a:=b:b:=c:c:=a: a;b;c;
> a:=b:b:='c':c:=a:a;b;c;
> a:=b:b:=c:c:='a':a;b;c;
Error, too many levels of recursion
Error, too many levels of recursion
Error, too many levels of recursion