« 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
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
<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
''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.''
|