« Introduction à Maple/Procédures » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (- l'utilisation + l’utilisation , - d'asile + d’asile , - s'inspirer + s’inspirer , - l'expression + l’expression , - d'usage + d’usage , - d'autre + d’autre , - d'important + d’important )
m Robot : Remplacement de texte automatisé (- n'est pas + n’est pas , - Aujourd'hui + Aujourd’hui , - d'euros + d’euros , - d'agir + d’agir , - l'apparence + l’apparence )
Ligne 49 :
Si on ne veut pas que la procédure retourne une valeur (par exemple si elle agit sur des variables globales ou qu'elle affiche déjà une suite de chiffres à l'aide de la fonction <code>print()</code>), on mettra en fin de programme <code>NULL;</code> ce qui aura pour effet d'évaluer cette variable intrinsèque à Maple et comme son nom l'indique, "rien" ne sera retourné par la procédure.
 
La commande <code>return(x)</code> permet aussi de faire retourner un résultat (ici <code>x</code>), mais son utilisation est particulière, car elle interrompt le programme. On ne l'utilise donc qu'en cas de sortie particulière, inattendue, d'une procédure. Dans l'exemple cité plus haut, il n'estn’est pas nécessaire d’utiliser la fonction <code>return()</code>.
 
Exemple :
Ligne 65 :
=== Les variables ===
 
On peut utiliser des variables dans les procédures Maple (elles sont dites « locales », ce sont par exemple les variables muettes des <code>for</code>). Il n'estn’est pas nécessaire de les indiquer mais c’est fortement conseillé de le faire en début de code pour plus de clarté en utilisant le mot-clé <code>local</code>. Exemple :
 
<source lang="text">
Ligne 235 :
Lorsqu'on exécute <code>factorielle(6)</code>, Maple affiche le bon résultat : <code>720</code>.
 
Ce type d’utilisation de la récursivité d'une fonction permet de voir quel algorithme a engendré l'appel de cette procédure, cependant ce genre d'opération est gourmand en ressources pour Maple, car à chaque nouvel appel de la procédure <code>factorielle</code>, il doit garder en mémoire le résultat précédent de la procédure qui n'estn’est pas finie, pour finalement fermer toutes les procédures lorsqu’il est arrivé à la fin de la récursivité. Cette méthode est donc à utiliser judicieusement ou à défaut, on peut utiliser les boucles <code>for</code> et <code>while</code> vues précédemment.
 
''Remarque : on peut cependant améliorer l'efficacité de la récursivité en demandant à Maple de se souvenir des valeurs précédemment calculées en ajoutant <code>option remember</code> dans l'entête de la procédure.''