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

Contenu supprimé Contenu ajouté
Dnegel (discussion | contributions)
→‎Boucles indéterminées (do while) : Un while ne s'écrit pas ''do while'' mais ''while do''
Dnegel (discussion | contributions)
→‎Définir une procédure : Rectification de l'utilisation de "return"
Ligne 31 :
* Le corps (<code>x := a + b + c</code>) indique au logiciel les actions à réaliser.
 
* Enfin, la fin de la procédure retourne éventuellement un résultat (<code>RETURN(x)</code>)spécifique. Une procédure Maple se termine toujours par <code>end proc</code> ou <code>end</code>.
 
Voici l'exemple complet :
Ligne 37 :
:<code>MaProcedure := proc(a, b, c)</code>
:<code> x := a + b + c ;</code>
:<code>end RETURN(x) proc;</code>
:<code>end;</code>
 
Cette procédure prend trois arguments et retourne la somme des trois. En effet, une procédure retourne par défault le dernier calcul effectué ou la dernière évaluation faite. Ici, l'affectation à la variable <code>x</code> sera retournée. Par exemple :
 
:<code>MaProcedure(1,2,3);</code> retourne <code>6</code> ;
:<code>MaProcedure(x,x,x);</code> retourne <code>3x</code>.
 
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 interromps 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 d'illustration :
 
:<code>retourner := proc(x);</code>
:<code> for i from 1 to x do</code>
:<code> return(i);</code>
:<code> od;</code>
:<code>end proc;</code>
 
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, quelque-soit la valeur de <code>x</code> (pourvu tout de même qu'elle soit supérieure ou égale à 1).
 
=== Les variables ===