« Introduction à Maple/Procédures » : différence entre les versions
Contenu supprimé Contenu ajouté
passage au geshi |
Aucun résumé des modifications |
||
Ligne 53 :
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'est pas nécessaire d'utiliser la fonction <code>return()</code>.
Exemple
<source lang="text">
Ligne 63 :
</source>
Cette procédure inutile, ne retourne que la valeur 1 car c'est lors de la première itération de la boucle <code>for</code>, c'est-à-dire quand <code>i</code> possède la valeur 1, que le programme va retourner <code>i</code> et s'interrompre. Aucune autre itération ne sera effectuée,
=== Les variables ===
On peut utiliser des variables dans les procédures Maple (elles sont dites « locales », ce sont par
<source lang="text">
Ligne 186 :
{{Attention
| Avec_fond = oui
| Il
}}
Ligne 218 :
Une procédure Maple peut tout à fait s'appeler elle-même, pour résoudre des problèmes de manière récursive. En particulier, les algorithmes de tri les plus efficaces utilisent cette méthode. Pour illustrer cela, nous allons écrire un algorithme qui calcule la (très classique) factorielle d'un entier ''n''.
Partons des
* <math>n! = n \times (n-1)!</math> lorsque ''n'' est strictement positif ;
Ligne 237 :
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
''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.''
Ligne 248 :
* définir une procédure avec <code>proc</code> ;
* définir des variables locales avec <code>local</code> ;
*
* former des boucles avec <code>for</code> ou <code>while</code> ;
* réaliser des procédures récursives.
|