Résumé de Cours de Sup et Spé T.S.I.

Quatrième Partie : Maple

41 Structures de contrôle et procédures

Sous-sections


41 Structures de contrôle et procédures

Ces structures de contrôle, répétitives ou alternatives sont le plus souvent utilisées dans le corps des procédures.
On verra dans la suite, procedures, des exemples détaillés de procédures utilisant ces structures.

41.1 Structure alternative

if condition
then instructions
else instructions
fi

Structure alternative :
si la condition est réalisée, on effectue les commandes après le then, sinon, celles après le else.
Le else est d'ailleurs optionnel et le fi termine toujours le if.

> if u=0 then y:=1else y:=sin(u)/u fi;

41.2 Structure répétitive

for variable
from début
by pas
to fin
do instructions od

Les instructions entre do et od sont éxécutées pour toutes les valeurs de la variable, depuis le début jusque la fin, en utilisant le pas donné.
On étudie ici la suite récurrente $ u_{n+1} =u_{n}+\dfrac{n}{u_{n}}.$

> u:=1;n:=10;
> for i from 1 to n do u:=(u+i/u) od;

while condition do instructions od

Les instructions entre do et od sont éxécutées tant que la condition est vérifiée.
Ici, dans une suite définie par une relation de récurrence $ u_{n+1}=f\left( u_{n}\right) $, on s'arrète quand deux termes consécutifs sont proches à 10$ ^{-5}$ près.

> u:=1;
> v:=f(u);
> while abs(u-v)> 10^-5 do u:=v;v:=f(v) od;
> u,v;

for variable
from début
by pas
to fin
while condition
doinstructions od

Les instructions entre do et od sont exécutées pour toutes les valeurs de la variable, depuis le début jusque la fin, en utilisant le pas donné, tant que la condition est vérifiée.
L'exemple est le même que ci-dessus, mais on s'interdit plus de 100 itérations.

> u:=1;
> v:=f(u);
> to 100 while abs(u-v)> 10^-5 do u:=v;v:=f(v) od;
> u,v;


Remarque :   Dans tous les cas, on peut omettre :

41.3 Procédures

->

Définition d'une procédure ou fonction simple.

> f:=x->x**2*sin(x);

proc(param)
local variables;
instructions
end

Définition d'une procédure de paramètres param donnés. Le résultat de la procédure est le dernier résultat calculé.
Ici, on écrit une procédure appelée suite qui calcule $ u_{n}$ pour une suite définie par $ u_{0}=a$ et par la relation de récurrence : $ u_{n+1}=\dfrac {u_{n}+\frac{1}{u_{n}}}{2}.$

> suite:=proc(a,n)
local u; u:=a;
from 1 to n do u:=(u+1/u)/2 od
u
end;


Remarque :   Quand on écrit une procédure, il importe de bien distinguer :



© Christophe Caignaert - Lycée Colbert - Tourcoing